2017-09-13 10 views
0

現在、サーバー名の横に/ logsカテゴリのすべてのファイルを一覧表示する、PythonでCSVファイルを作成する方法を解明しようとしていますSSHによって。私はどのように確認していない私の現在のコードでCSVファイルを作成して、サーバー名のあるディレクトリからすべてのファイルを一覧表示する

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

:私のCSVで、私はこのような何かが必要な場合

server, machine 
IP;file1 file2, file3 file4 etc 
IP2;file1 file2, file3, file 4 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

使用Pythonでビルドライブラリ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:などFILE1 FILE2 ファイル3 FILE4 ... 私はファイルを反復処理する必要があるとのようなCSVんが: IP1:私は「didnの@sever FILE3 – Sever

+0

:FILE1 IP1:FILE2 IP1あなたの問題を解決する? –

+0

はい、今私が得ている出力は: 'server; machine' ' 10.10.10.10; ... file1file2file3file4file5 ' しかし、私はこのようにこれをしたい。 ' 10.10.10.11 file1file2file3file4file5file5file6file7': 'サーバー、マシン 10.10.10.10; file1の 10.10.10.10; file2の 10.10.10.10; file3' – Sever

関連する問題