使用Python将数据从2个文件写入excel

时间:2016-04-24 12:46:00

标签: python python-2.7 xls xlsxwriter

我有两个有差异数据的文件。我想用python将它写入excel。 我已经定义了4列标题。

以下是摘录。我想要两个俱乐部,这样我就不必两次定义行和列。 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()

2 个答案:

答案 0 :(得分: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

请注意,列可以作为数组传递,因此您可以根据需要构建数组,然后将它们放入列中。

修改

如果您无法使用Pandas(或因某些原因而获胜),您可以使用低技术解决方案,例如压缩。假设您可以准备好所有列,可以使用旧的压缩将它们转换为行:

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

然后你可以将 out 写入一个文件,例如csv扩展名,可以通过excel读取。

答案 1 :(得分: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])