将输出保存到txt的奇怪python行为

时间:2015-07-21 01:46:00

标签: python

将我的程序结果保存到.txt文件应该非常简单,但是当我这样做时会发生一些奇怪的事情。首先,虽然终端打印结果只需要几秒钟,但我的结果需要几分钟才能写入.txt文件。此外,当我打开文本文件时,它没有正确保存在shell上打印的所有信息!而不是我的完整结果,我得到“54313806']”作为第一行,然后只有我的结果的最后一位保存到下面的文本文件。我的结果在终端中正常显示。

我检查了其他查询以了解如何将结果保存在文本文件中,所以这就是我所拥有的:

queue2[back] = item

对发生的事情有什么看法?或者我应该尝试找到另一种方法将输出保存到文本文件中?

这是我的完整代码:

with open("output.txt", "w+") as output:
     subprocess.call["python", "./my_program.py"], stdout=output)

1 个答案:

答案 0 :(得分:1)

我不认为以这种方式从内部递归调用你的程序是一个好主意......你可能会产生无限的子进程。我会忘记subprocess位并简单地写入这样的文件:

with open("output.txt", "w+") as output:
   kiwis = []
   for elem in l:
       kiwis.append(elem.strip().split(' '))
   for kiwis in kiwis:
       data = kiwis[0:3] #extracting first three elements from every line
       output.write(data)