0

私はPythonについてあまり知識がないので、複数の入力ファイルを1つのExcelファイルに異なる列に保存するにはどうすればよいですか? 単一のログ ファイルを入力として受け取る Python スクリプトがあります。

file = 'output_1.log' 

このログ ファイルの一部の結果を次のように 1 つの列に Excel ファイルに出力します。

data = open(file, 'r')

*.log複数のテキスト ファイル ( ) を読み取り、結果を 1 つの Excel ファイルの入力ファイルごとに異なる列に出力するには、これらのコマンドを変更するにはどうすればよいですか?

ありがとうございました...

4

2 に答える 2

1

これはあなたが望むことをするでしょう。各ファイルを個別に読み取り、各ファイル名をそのリストにマッピングする辞書を作成します。

import glob

data = {}
for infile in glob.glob("*.log"):
    with open(infile) as inf:
        data[infile] = [l[:-1] for l in inf]

with open("summary.xls", "w") as outf:
    outf.write("\t".join(data.keys()) + "\n")
    for sublst in zip(*data.values()):
        outf.write("\t".join(sublst) + "\n")
于 2012-07-23T16:58:37.703 に答える
0

Davidの答えは良い選択肢です。

個人的には、os.walk (単一のディレクトリからすべてを取得する場合) などを使用してすべてのログ ファイルを反復処理するか、ユーザーが指定したリストからそれらを反復処理する傾向があります。

XLS ファイルの作成に関しては、David が指摘しているように、join を使用して TSV として実行できます。ただし、XLWTのようなライブラリを使用すると、より多くの Excel 機能を制御してアクセスできるようになります。TSV として実行したい場合でも、テキストの引用などに役立つライター オブジェクトを含むCSVライブラリを参照することをお勧めします。

于 2012-07-23T17:06:45.467 に答える