我需要超过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')
但是,由于我无法上传空文件,因此我需要向这些文件添加内容。所有这些文件的内容可以相同。例如:添加字符串"垃圾邮件"到每个文件。对此最好的解决方案是什么?
答案 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次。看到我们已经知道我们想要的内容,我们可以节省时间。
注意:此解决方案使用生成器,因此除非您强制它进行迭代(例如将其置于循环或元组中),否则它不会生成任何文件。