我正在尝试将多个 csv 文件合并为一个,并尝试了多种方法,但我很挣扎。
我从多个 csv 文件导入数据,当我将它们一起编译成一个 csv 文件时,似乎前几行填充得很好,但随后它开始在行之间随机输入可变数量的空格,并且它永远不会填写完合并的 csv 文件后,它似乎只是不断地添加信息,这对我来说没有意义,因为我正在尝试编译有限数量的数据。
我已经尝试为文件编写关闭语句,但仍然得到相同的结果,我指定的组合 csv 文件永远不会停止获取数据,并且它将在整个文件中随机间隔数据 - 我只想要一个正常编译的 csv。
我的代码有错误吗?有什么解释可以解释为什么我的 csv 文件会这样吗?
csv_file_list = glob.glob(Dir + '/*.csv') #returns the file list
print (csv_file_list)
with open(Avg_Dir + '.csv','w') as f:
wf = csv.writer(f, delimiter = ',')
print (f)
for files in csv_file_list:
rd = csv.reader(open(files,'r'),delimiter = ',')
for row in rd:
print (row)
wf.writerow(row)
你的代码对我有用。
或者,您可以按如下方式合并文件:
csv_file_list = glob.glob(Dir + '/*.csv')
with open(Avg_Dir + '.csv','w') as wf:
for file in csv_file_list:
with open(file) as rf:
for line in rf:
if line.strip(): # if line is not empty
if not line.endswith("\n"):
line+="\n"
wf.write(line)
或者,如果文件不太大,您可以一次读取每个文件。但在这种情况下,所有空行和标题都将被复制:
csv_file_list = glob.glob(Dir + '/*.csv')
with open(Avg_Dir + '.csv','w') as wf:
for file in csv_file_list:
with open(file) as rf:
wf.write(rf.read().strip()+"\n")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)