Python脚本未合并csv文件
我正在尝试使用下面的脚本将100000多个CSV文件(所有相同的格式)合并到一个文件夹中。每个CSV文件的平均大小为3-6KB。当我运行这个脚本时,它只打开确切的47.csv文件并合并。当我重新运行时,它只合并相同的.csv文件,而不是所有文件。我不明白它为什么这么做Python脚本未合并csv文件,python,csv,Python,Csv,我正在尝试使用下面的脚本将100000多个CSV文件(所有相同的格式)合并到一个文件夹中。每个CSV文件的平均大小为3-6KB。当我运行这个脚本时,它只打开确切的47.csv文件并合并。当我重新运行时,它只合并相同的.csv文件,而不是所有文件。我不明白它为什么这么做 import os import glob os.chdir("D:\Users\Bop\csv") want_header = True out_filename = "combined.files.csv"
import os
import glob
os.chdir("D:\Users\Bop\csv")
want_header = True
out_filename = "combined.files.csv"
if os.path.exists(out_filename):
os.remove(out_filename)
read_files = glob.glob("*.csv")
with open(out_filename, "w") as outfile:
for filename in read_files:
with open(filename) as infile:
if want_header:
outfile.write('{},Filename\n'.format(next(infile).strip()))
want_header = False
else:
next(infile)
for line in infile:
outfile.write('{},{}\n'.format(line.strip(), filename))
首先检查读取文件的长度:
read_files = glob.glob("*.csv")
print(len(read_files))
注意glob不一定是递归的
否则,您的代码看起来很好。您可能想考虑使用CSV库,但请注意,需要调整字段大小限制。 < P>您是舒尔吗?您的所有文件名都以<代码> .CSV < /代码>结束。如果此目录中的所有文件都包含您所需的内容,则无需筛选即可打开所有文件
glob.glob('*')
read_文件
是否实际包含所有100000个文件?(在同一个目录中有大量文件。)如果使用打开输出文件,则无需先检查并删除该文件。是否有些文件名以点“.”开头?在不同的情况下,是否存在“csv”扩展?我只需检查(甚至在python CLI中运行)glob.glob()函数的结果是什么,然后从那里开始。如何检查read_文件是否包含所有文件?文件的名称如下:“file0000001,file000002,等等。”当“组合文件”变得更大,将所有100000个csv文件组合在一起时,它的大小将达到数百兆比特。那有关系吗?