将内容添加到多个(txt)文件python

时间:2017-07-10 09:48:23

标签: python string list file add

我需要超过2000个虚拟(txt)文件来测试回收站功能。我使用以下代码创建了txt虚拟文件:

list = range(0,2000)
vulling = list

with open("path/file.txt", "w") as f:
for s in vulling:
    f.write(str(s) +"\n")

List = open("path/file.txt")
List2 = (s.strip() + ' dummy' for s in List)
for item in List2: 
    open('path/%s.txt'%(item,), 'w')

但是,由于我无法上传空文件,因此我需要向这些文件添加内容。所有这些文件的内容可以相同。例如:添加字符串"垃圾邮件"到每个文件。对此最好的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

最简单的方法就是创建包含您想要开头的内容的文件:

import os.path


def create_test_files(target_dir, content, n=2000, template="file_%s.txt"):
    for i in xrange(n):
        path = os.path.join(target_dir, template % i)
        with open(path, 'w') as fh:
            fh.write(content)

        yield path


for file_name in create_test_files("/tmp/example", 'Spam'):
    print file_name

这是为您选择文件名,因此如果您需要特定的文件名,则必须更改它。

这真的很快。另一种方法(创建然后复制)将导致必须读取原始文件2000次。看到我们已经知道我们想要的内容,我们可以节省时间。

注意:此解决方案使用生成器,因此除非您强制它进行迭代(例如将其置于循环或元组中),否则它不会生成任何文件。