我有一个包含数千个.txt文件的文件夹。我想根据以下模型将它们合并到一个大的.csv文件中:
我发现应该执行此工作的R脚本(https://gist.github.com/benmarwick/9265414),但它显示此错误。
Error in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed
我不明白我的错是什么。
没关系,我很确定没有R也可以做到这一点。如果您知道一个非常优雅和简单的方法,将不胜感激(这对像我这样的很多人很有用)
精度:文本文件为法语,而不是ASCII。这是一个示例:https
:
//www.dropbox.com/s/rj4df94hqisod5z/Texts.zip?dl=0
可以使用 pathlib 更加紧凑地 编写 。
>>> import os
>>> os.chdir('c:/scratch/folder to process')
>>> from pathlib import Path
>>> with open('big.csv', 'w') as out_file:
... csv_out = csv.writer(out_file)
... csv_out.writerow(['FileName', 'Content'])
... for fileName in Path('.').glob('*.txt'):
... csv_out.writerow([str(fileName),open(str(fileName.absolute())).read().strip()])
由该glob产生的项目提供对完整路径名和文件名的访问,因此不需要级联。
编辑:我检查了一个文本文件,发现阻塞处理的字符之一看起来像“
fi”,但实际上这两个字符一起作为一个字符。考虑到此csv可能的实际用途,我建议进行以下处理,该处理将忽略诸如此类的奇怪字符。我删除了结尾,因为我怀疑这会使csv处理更加复杂,并且可能是另一个问题的话题。
import csv
from pathlib import Path
with open('big.csv', 'w', encoding='Latin-1') as out_file:
csv_out = csv.writer(out_file)
csv_out.writerow(['FileName', 'Content'])
for fileName in Path('.').glob('*.txt'):
lines = [ ]
with open(str(fileName.absolute()),'rb') as one_text:
for line in one_text.readlines():
lines.append(line.decode(encoding='Latin-1',errors='ignore').strip())
csv_out.writerow([str(fileName),' '.join(lines)])
给定一个文件夹,其中包含多个具有不同列长度的csv文件 必须使用python将它们合并到单个csv文件中,并将文件名打印为一列。 输入:https://www.dropbox.com/sh/1mbgjtrr6t069w1/AADC3ZrRZf33QBil63m1mxz_a?dl=0 输出:
问题内容: 假设我们有许多文本文件,如下所示: 文件1: 文件2: 文件3: 文件4: 我们如何制作一个文本文件,如下所示: 结果: 相关代码可能是: 在这之后?有什么帮助吗? 问题答案: 您可以将每个文件的内容直接读取到输出文件句柄的write方法中,如下所示:
本文向大家介绍Python将多个excel文件合并为一个文件,包括了Python将多个excel文件合并为一个文件的使用技巧和注意事项,需要的朋友参考一下 利用Python,将多个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。 完整代码 源文件excel1: 源文件e
问题内容: 我将多个csv文件保存在一个具有相同列布局的文件夹中,并希望将其作为pandas中的数据框加载到python中。 我正在使用以下代码: 是否有其他软件包更好的解决方案? 这需要很多时间。 谢谢 问题答案: 我建议使用列表理解:
我在同一个文件夹中有数千个csv文件名,如下file_x_x.csv,其中x是1到10000之间的数字。每个文件包括一个标题和一行数据: file_1_1.csv 我的方法: 我不知道如何在最后创建一个唯一的文件。你能看一下上面的代码并告诉我如何获得所需的输出吗?如果我错过了什么?
在vertx中将多个文件的内容附加到单个文件中的最佳方式是什么?我尝试过vertx文件系统和asyncFile,但它们都没有附加文件的选项,或者我不知道有任何附加文件。是否有其他方法可以在vertx中异步合并或附加文件。 我能找到的唯一解决方案是制作缓冲区列表并使用循环将内容写入每个先前缓冲区长度的末尾。