使用Python将多个输入文件转换为一个Excel文件

时间:2012-07-23 16:29:24

标签: python excel

因为我对Python知之甚少,所以我想问一下如何将多个输入文件保存到不同列中的单个Excel文件中?我有一个python脚本,它将一个日志文件作为输入:

file = 'output_1.log' 

并在Excel文件中输出此日志文件的一些结果,如下所示:

data = open(file, 'r')

如何更改这些命令以读取多个文本文件(*.log)并将结果打印在每个输入文件的不同列的单个Excel文件中?

谢谢...

2 个答案:

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

答案 1 :(得分:0)

大卫的回答是个不错的选择。

就个人而言,我更倾向于使用os.walk之类的东西来迭代所有日志文件(如果从一个目录中拉出所有日志文件)或者从用户提供的列表中迭代它们。

至于编写XLS文件,当然可以像David指出的那样使用join进行TSV。但是,使用XLWT之类的库可以让您更好地控制和访问更多excel功能。如果您确实希望以TSV的形式进行操作,您仍然可能希望查看带有编写器对象的CSV库,以帮助处理文本引用等内容。