0

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

file = 'output_1.log' 

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

data = open(file, 'r')

如何更改这些命令以读取多个文本文件 ( *.log) 并将结果打印在单个 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

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

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

至于编写 XLS 文件,您当然可以像 David 指出的那样使用 join 将其作为 TSV 来完成。但是,使用XLWT 之类的库可以让您更好地控制和访问更多 Excel 功能。如果您确实想将其作为 TSV 执行,您仍然可能希望查看CSV库及其编写器对象,以帮助处理文本引用等问题。

于 2012-07-23T17:06:45.467 回答