2016-04-24 21 views
1

diffデータを持つ2つのファイルがあります。私はPythonを使用してExcelに書きたい。 私は定義された4列の見出しを与えました。Pythonを使用して2つのファイルからExcelにデータを書き込む

以下はスニペットです。私は行と列を2回定義する必要がないように、両方ともクラブにしたい。 ABC.txtとLMN.txtはどちらもxlsxに書き込むデータを持っています。

row=1 
    col=0 
    with open('ABC.txt','r') as f: 
     for K in f: 
      worksheet.write(row,col,K) 
      row+=1 
    row=1 
    col=0 
    with open('LMN.txt','r') as f: 
     for X in f: 
      worksheet.write_url(row , col+1, X) 
      row += 1 

     workbook.close() 

答えて

1

あなたは本当にPandasのようなパッケージを使用することを検討する必要があります。事のこのタイプは、パンダで途方もなく簡単です:

import pandas as pd 

df = pd.DataFrame(columns=['col1', 'col2']) 

df['col1'] = ['hello1', 'world1'] 
df['col2'] = ['hello2', 'world2'] 
print df 

df.to_excel('output.xls', index=False) 

出力:列は配列として渡すことができますので、あなたが好きなようにあなたの配列を作成し、その後にそれらを置くことができることを

 col1 col2 
0 hello1 hello2 
1 world1 world2 

お知らせ列。

編集:

場合、あなたはパンダを使用することはできません(または、何らかの理由ではありません)、あなたは、このようなビュンとローテクなソリューションを使用することができます。あなたは、列のすべての準備ができて取得することができ、あなたが行にそれらを変換するためにビュン古き良きを使用することができますと仮定:

col1 = ['hello1', 'world1', 'again1'] 
col2 = ['hello2', 'world2', 'again2'] 
col3 = ['hello3', 'world3', 'again3'] 

out = '' 
for row in zip(col1, col2, col3): 
    out += ','.join(row) + '\n' 
print out 

出力:

hello1,hello2,hello3 
world1,world2,world3 
again1,again2,again3 

を次にあなたが言う、ファイルへアウトを書くことができますCSV拡張子は、Excelで読み込み可能です。

+0

は面白そうですね。しかし私はパンダを私のコードや広範な目的のために使うことはできないようです。しかし、私は確かにそれを試してみましょう。 – RishuA

+0

私はPandasを使用せずに別のソリューションを追加しましたが、このためにすべてのデータをメモリに保存する必要があることに注意してください。 – Shovalt

0

ファイルが大きすぎる場合は、一つのループでそれを書き、その後一緒に構造を結合して、それらを最初に読むことができます:

with open('ABC.txt', 'r') as f: 
    cola = list(f) 

with open('LMN.txt', 'r') as f: 
    colb = list(f) 

rows = zip(cola, colb) 

for idx, row in enumerate(rows): 
    worksheet.write(idx, 0, row[0]) 
    worksheet.write_url(idx, 1, row[1]) 
+0

実際には、最初のファイルにはすでにデータがあります。 2番目のものについては、私はそれを作成しなければならず、同時にコード出力(multilpe)が書かれ、最後に2番目のファイルデータと2番目に生成されたデータがxlsxファイルの列と行にまとめられます。 2番目のプロセスによって作成されます。あなたのアイデアも良いです。私は今日それを試してみます。 – RishuA

関連する問題