我在Python 2.7
中有一段代码,它在一个名为file.txt的文本文件中写入所有可能的序列i j k l。
我的脚本成功运行,但file.txt中的写入行数为2401890而不是2678400 = 60 * 24 * 60 * 31行或序列。
with open('file.txt', 'w') as f:
for i in range(0,59):
for j in range (0,23):
for k in range(0,59):
for l in range(1,31):
f.write('%s %s %s %s\n'% (i,j,k,l))
你能告诉我一个很好的解决方案,用Python在文件文本中编写大数据吗? 或者,你能告诉我如何改进Python中的读写流?
感谢所有人!!!
答案 0 :(得分:0)
range
不包含上限,因此您需要增加它们。还可以考虑使用itertools.product
替换嵌套的for循环使用更干净的版本。
from itertools import product
with open('file.txt', 'w') as f:
[f.write('%s %s %s %s\n' % t) for t in product(
range(60), range(24), range(60), range(1, 32))]
答案 1 :(得分:0)
考虑list-comprehencion
,
with open('file.txt', 'w') as f:
[f.write('%s %s %s %s\n'%(i ,j, k,l))
for i in range(0,59) for j in range(0,23)
for k in range(0,59)
for l in range(1,31)]
在command-line
运行您的脚本,而不是从IDE