Python 代码的输出重定向
查询的中心是使用 Python 将打印语句重定向到指定的文本文件。尽管采用了 sys.stdout 技术,目标文件仍然为空。本文旨在探讨该问题并提供替代解决方案。
利用文件对象进行输出
最直接的方法是直接写入文件对象:
with open('out.txt', 'w') as f: print('Filename:', filename, file=f) # Python 3.x # print >> f, 'Filename:', filename # Python 2.x
重定向标准输出
或者,可以使用以下代码实现标准输出重定向:
import sys orig_stdout = sys.stdout f = open('out.txt', 'w') sys.stdout = f for i in range(2): print('i = ', i) sys.stdout = orig_stdout f.close()
使用标准库上下文管理器
对于 Python 3.4 及以上版本,专用的上下文管理器可以简化此操作进程:
from contextlib import redirect_stdout with open('out.txt', 'w') as f: with redirect_stdout(f): print('data')
外部输出重定向
通过 shell 将输出重定向到外部是另一个可行的选项:
./script.py > out.txt
其他注意事项
以上是如何将 Python 的打印输出重定向到文件以及为什么会失败?的详细内容。更多信息请关注PHP中文网其他相关文章!