如何在python中增加写入文件的行数



所以我有一个程序,它将程序的输出写入文本文件,但它不会将打印出的所有行都写入文本文件。有什么方法可以增加这一点吗?下面是一个代码示例:

import sys
sys.stdout = open('thefile.txt', 'w')
#Lots of printing here, but not all is written to the text file.

有办法提高这个限额吗?还是没有?编辑:没关系,我刚刚发现问题,我不小心过早地结束了节目。

您很可能错过了为sys.stderr做同样的事情。然而,你不应该那样做。如果你想让stdout和stderr进入一个文件,只需像一样调用你的程序

python prog.py >thefile.txt 2>&1

很可能您看到的输出将同时发送到sys.stderrsys.stdout。要进行测试,您可以在两个位置使用相同的文件句柄:

fh = open('thefile.txt', 'w')
stdout_, stderr_ = sys.stdout, sys.stderr
sys.stdout = sys.stderr = fh
# the code you're importing or printing from
# to restore the defaults.
sys.stdout = stdout_
sys.stderr = stderr_

除了重定向标准错误输出外,在写入文件后不要忘记正确关闭文件。如果不这样做,输出可能无法正确同步,文件末尾可能会丢失。Python的with构造非常适合这些情况:

with open('thefile.txt', 'w') as f:
    # do the magic here
    pass

相关内容

  • 没有找到相关文章

最新更新