【发布时间】:2019-02-22 22:16:32
【问题描述】:
我有至少 100k 行的 .dat 文件。我想使用 python 在每一行的末尾添加一些内容。我有多个 .dat 文件,如果可能,请告诉我如何处理所有文件,并在行尾添加内容并将它们保存到另一个目录。
【问题讨论】:
-
是的。向我们展示您的尝试或您的想法。提示:打开输入和输出文件,然后循环:从输入读取行,修改行,将行写入输出。
标签: python
我有至少 100k 行的 .dat 文件。我想使用 python 在每一行的末尾添加一些内容。我有多个 .dat 文件,如果可能,请告诉我如何处理所有文件,并在行尾添加内容并将它们保存到另一个目录。
【问题讨论】:
标签: python
如果所有文件都在一个目录中,您可以使用glob 模块获取所有这些文件,否则您需要使用os.walk 从os 模块遍历目录。
然后您将遍历从上述函数获得的每个文件名。
在本次迭代中,您将首先在另一个目录中创建一个新文件 (open(..., 'w+')),然后打开您要修改的文件 (open(..., 'r'))。
然后您将开始迭代要修改其内容的文件的内容:
with open(target, 'w+') as tf:
with open(source, 'r') as sf:
for line in sf:
tf.write(line[:-1] + ' appended content\n')
[:-1] 删除当前行中的换行符 (\n),如果您的文件包含 \r\n 作为换行符,您可能需要使用 [:-2]。
for line in sf: 使用了生成器,这意味着源文件的内容在开始时并没有完全加载到内存中,而只是当前需要的内容。
【讨论】:
\r
[:-1]/[:-2]。但是现在知道open 的文本变体可能对我有所帮助。