首页 >后端开发 >Python教程 >如何正确地将 Python 打印输出重定向到文本文件?

如何正确地将 Python 打印输出重定向到文本文件?

Susan Sarandon
Susan Sarandon原创
2024-11-27 19:43:14240浏览

How to Properly Redirect Python Print Output to a Text File?

将 Python 输出重定向到文本文件

尝试使用 Python 将打印输出重定向到文本文件时,如果您选择方法没有产生期望的结果。

问题说明

以下代码无法使用 sys.stdout 将输出重定向到文件:

f = open('output.txt','w')
sys.stdout = f

path= '/home/xxx/nearline/bamfiles'
bamfiles = glob.glob(path + '/*.bam')

for bamfile in bamfiles:
    filename = bamfile.split('/')[-1]
    print 'Filename:', filename

解决方案

而不是 sys .stdout,考虑使用文件对象打印:

with open('out.txt', 'w') as f:
    print('Filename:', filename, file=f)  # Python 3.x

替代解决方案

  • 使用上下文管理器重定向输出:
from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')
  • 从外部重定向输出shell:
./script.py > out.txt

其他注意事项

  • 确保 glob 函数正在定位所需的文件。
  • 正确操作使用 os.path.join 的文件路径和os.path.basename.

以上是如何正确地将 Python 打印输出重定向到文本文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

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