将控制台输出重定向到文件
在 Python 中,将 stdout 流重定向到文件允许开发人员捕获并保存打印输出。为了实现这一点,可以操作 sys.stdout 属性。但是,最近报告了一个问题,原始问题中概述的方法无法生成所需的输出。
问题解决
问题在于不正确的打印时使用 file= 参数。在 Python 3.x 及更高版本中,正确的语法是 print('Filename:', filename, file=f)。对于 Python 2.x,使用 print >> f, '文件名:', 文件名。
或者,可以使用 with 语句更简洁地重定向 stdout:
with open('output.txt', 'w') as f: with redirect_stdout(f): print('Filename:', filename)
其他方法
除了使用sys.stdout之外,还有其他方法可以重定向输出:
使用文件对象:直接写入文件对象,如下所示:
with open('out.txt', 'w') as f: print('Filename:', filename, file=f)
外部 Shell 重定向: 使用 > shell 中的运算符用于重定向输出:
./script.py > out.txt
故障排除
在提供的脚本中,确保:
改善结果
使用更正的语法和文件对象,预期输出将是:
Filename: ERR001268.bam Readlines finished! Mean: 233 SD: 10 Interval is: (213, 252)
此更新版本的脚本捕获输出并将其重定向到 output.txt 文件。
以上是如何将控制台输出重定向到 Python 中的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!