我有两个有差异数据的文件。我想用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()
答案 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])