2017-09-13 6 views
0

현재 서버 이름과 함께/logs 범주의 모든 파일을 나열하는 CSV 파일을 파이썬으로 만드는 방법을 알아 내려고하고 있습니다. SSH에 의해.서버 이름이있는 디렉토리의 모든 파일을 나열하는 파이썬에서 CSV 파일 만들기

내 CSV에서
server, machine 
IP;file1 file2, file3 file4 etc 
IP2;file1 file2, file3, file 4 etc. 

때 나는 이런 식으로 뭔가가 필요합니다 : 내 현재 코드로

server, machine 
IP;file1 
IP;file2 
Ip;file3 
IP;file4 
IP2;file1 
IP2;file2 
IP2;file3 
etc... 

을 나는 방법을 잘 모르겠습니다 문제는 내가 내 스크립트를 시작할 때마다, 내가 좋아하는 뭔가를 얻을 수있다

SLIST = path to csv from which i took IP 
CMD2 = 'ssh %s ls /opt/syslog/logs' 

def mloop(): 
    f = open('out.csv', 'a') 
    columnTitleRow = "server, machine\n" 
    f.write(columnTitleRow) 

    for i in csv2hash(SLIST): 


     if i.get('IP'): 
      r = getoutput(CMD2 % (i['IP'])) 

     server = i['IP'] 
     machine = r 
     row = server + ";" + machine + ";" + "\n" 
     f.write(row) 
    f.close() 

을하고 ... "R"을 볼 수있는 것은 로그 폴더에서 모든 파일을 얻는 문제 :이 문제 관련 단편은 다음과 같습니다 시작 나는 각 파일을 csv에 개별적으로 저장하는 방법을 모른다.

답변

0

사용 파이썬에서 빌드 라이브러리 csv

import csv 

output_file = open('outputfile.csv', 'wb') 
fieldnames = ['server', 'machine'] 
writer = csv.DictWriter(output_file, fieldnames=fieldnames) 
writer.writeheader() 

def mloop(): 
    ... 
    ... 
    server = i['IP'] 
    machine = r 
    row = {'server': server, 'machine': machine} 
    writer.writerow(row) 

output_file.close() 

더 읽기에 대한 Python csv

+0

글쎄 그것은 그들 모두를 나열 할 수있는 좋은 방법입니다하지만 여전히 내 코드로 동일한 작업을 수행. 어느 기본적으로 : IP1 : 등 파일 1 파일 2 파일 3 file4 ... 내가 파일을 반복 할 필요 같은 CSV 않지만 : IP1 : 나는 'didn를 @sever 파일 3 – Sever

+0

: 파일 1 IP1 : 파일 2 IP1 너의 문제를 일으키지 않니? –

+0

네, 출력 결과는 다음과 같습니다 : 'server; machine' '10.10.10.10; file1file2file3file4file5file5file6file7' '10.10.10.11, file1file2file3file4file5 ... '그러나 나는 이런 식으로이 작업을 수행 할 수 : '서버, 컴퓨터 10.10.10.10, 파일 1 10.10.10.10, 파일 2 10.10.10.10, file3' – Sever