将“打印”输出重定向到文件
尝试将“打印”输出重定向到 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
或者,对于一次性脚本,重定向“sys.stdout”可能是合适的:
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()
Since 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
要解决潜在问题,请考虑检查脚本中的第一个文件名,该文件可能未初始化。此外,验证文件夹是否存在并打印“bamfiles”可以帮助识别文件发现的任何问题。建议使用“os.path.join”和“os.path.basename”进行路径和文件名操作,以获得最佳的代码清晰度。
以上是如何将 Python 的 `print` 输出重定向到文件?的详细内容。更多信息请关注PHP中文网其他相关文章!