我有一堆CSV文件,我将把它们合并到一个名为'Combined'的CSV文件中。对于每个CSV文件,一旦将数据附加到“组合”文件,我想在“组合”的第1列之前插入一个新列,并在该迭代中插入从中复制数据的CSV文件的名称。有什么办法可以在Python中做到这一点?将列添加到CSV文件并在该列中插入文件名
回答
这可以按如下方式完成。首先打开一个CSV文件输出。现在使用Python的glob
库来列出文件夹中的所有CSV文件。对于在CSV文件中的每一行,前缀的文件名作为第一列条目,然后将其写入output.csv
:
import glob
import csv
with open('output.csv', 'w', newline='') as f_output:
csv_output = csv.writer(f_output)
for filename in glob.glob('*.csv'):
with open(filename, newline='') as f_input:
csv_input = csv.reader(f_input)
for row in csv_input:
row.insert(0, filename)
csv_output.writerow(row)
因此,举例来说,如果你有这两个CSV文件中:
num.csv
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
letter.csv
a,b,c,d,e,f
a,b,c,d,e,f
a,b,c,d,e,f
a,b,c,d,e,f
这将创建下列output.csv
文件:
letter.csv,a,b,c,d,e,f
letter.csv,a,b,c,d,e,f
letter.csv,a,b,c,d,e,f
letter.csv,a,b,c,d,e,f
num.csv,1,2,3,4,5
num.csv,1,2,3,4,5
num.csv,1,2,3,4,5
这里假定您使用的是Python 3.x.
令人惊叹的马丁埃文斯。万分感谢。对于python来说,这是一个新的东西,并且很难搞清楚这一点。对我的问题的一个小改变:这些必须合并的'csv文件'实际上是压缩文件夹中的.LOG文件。我知道如何解压缩它们和所有这些,但我仍然得到一个错误,如下所示: 迭代器应该返回字符串,而不是字节(你是否在文本模式下打开文件?) PS:我正在使用Python 3.x 。 –
在Python 3.x中,您需要稍微不同地打开这些文件。我已经相应地更新了脚本。假设您的日志文件格式相同,则更改为使用'* .log' –
代码抛出此错误:在二进制模式下不支持参数'newline'。我相信这是由于'r'默认为'rb'这个事实造成的。所以,我只是将'r'改为'rt',它完美地工作。万分感谢! –
- 1. 添加列名到CSV文件,蟒蛇
- 2. 添加列到CSV文件
- 3. 将计算列添加到csv文件
- 4. 将序列添加到csv文件
- 5. Java将新列添加到csv文件
- 6. 在Python中将列添加到.CSV文件并计算值
- 7. 将csv文件的特定列添加到新的csv文件
- 8. 熊猫 - 格式化csv文件将列名添加到列
- 9. 使用文本文件将文件名添加到列导入
- 10. 将文件名插入csv文件的最后一列。
- 11. 使用批处理文件将列添加到csv文件中
- 12. 选择特定的列并将csv名称添加到最终的csv文件
- 13. Python熊猫添加文件名列CSV
- 14. 将单列csv文件合并到单个csv文件中
- 15. PHP - 在CSV文件中插入列
- 16. Python读取CSV文件列并在csv文件中写入文件名和列名
- 17. 从.csv文件名循环并提取文件编号并插入列
- 18. 在CSV文件中添加列标题
- 19. 从一个CSV文件添加列到另一个CSV文件
- 20. 导入一个excel .csv文件并将其添加到phpMyAdmin中的一列
- 21. 在CSV中导入CSV文件时向列添加值
- 22. 一列中添加文件名,而合并multible CSV文件pandas- Python的
- 23. 修改文件列表中的文件名并将它们添加为新列
- 24. 批处理文件重命名文件并添加序列号到文件名
- 25. 将序列号作为第一列添加到CSV文件
- 26. 添加文件名为CSV的最后一列文件
- 27. 将csv文件中的记录添加到相关列表中
- 28. 在CSV文件末尾添加空列
- 29. 现在加入()和文件名CSV到相同的MySQL列
- 30. 在导入csv文件时将文件名添加到访问表
你所追加的csv文件的格式是什么?你在追加更多专栏吗?或者只是将新数据附加到现有列上? – userXktape
是csv文件的格式与其他格式相同吗? – MattR
@userXktape:CSV文件的格式是.LOG。我不追加更多的专栏。我只想在第一列中插入文件名,并在现有数据正下方的文件中追加任何内容。 –