我有一堆CSV文件,包含常见列但行不同。我想将它们全部合并到一个CSV文件中。这是我写的那个脚本
import glob, os
os.chdir("./data")
fout = open("merged.csv", "a")
lout = open("merger_log", "a")
for fname in glob.glob("*.csv*"):
with open(fname) as f:
# exclude header for all but the first csv file.
if os.stat("merged.csv").st_size > 0:
next(f)
fout.writelines(f)
log = "Appended %s \n" % fname
print(log)
lout.write(log)
fout.close()
lout.close()
当我运行此脚本时,它会成功附加前几个文件,但每次都会卡在一个文件上。并且卡住它似乎是从所述文件添加位到输出文件而不移动到下一个文件。它停止的文件没有什么特别之处,它与其他文件大小相同,并且没有格式错误。实际上,我从数据集中删除了该文件,并将程序挂在另一个文件上。不确定这个脚本有什么问题。
如果有人有更好的方法来合并一堆CSV文件,我会全力以赴。
谢谢!
编辑:我应该提到这个脚本只用两个文件就能很好地工作。