首页 >后端开发 >Python教程 >如何将 Python 的打印输出重定向到文件以及为什么会失败?

如何将 Python 的打印输出重定向到文件以及为什么会失败?

Barbara Streisand
Barbara Streisand原创
2024-11-28 21:28:12457浏览

How Can I Redirect Python's Print Output to a File and Why Might It Fail?

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

其他注意事项

  • 使用 glob.glob 验证指定路径内 bamfile 的可用性。
  • 利用 os.path.join 和 os.path.basename 获得高效的路径和文件名操纵。

以上是如何将 Python 的打印输出重定向到文件以及为什么会失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn