如何在Python 2.7中改进文本文件中的写入流

时间:2015-10-25 23:01:13

标签: python python-2.7

我在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中的读写流?

感谢所有人!!!

2 个答案:

答案 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

运行它