首页 >后端开发 >Python教程 >如何将控制台输出重定向到 Python 中的文件?

如何将控制台输出重定向到 Python 中的文件?

DDD
DDD原创
2024-12-06 17:54:14793浏览

How Can I Redirect Console Output to a File in Python?

将控制台输出重定向到文件

在 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

故障排除

在提供的脚本中,确保:

  • 指定的路径(/home/xxx/nearline/bamfiles)包含有效的.bam文件
  • glob.glob 函数正确识别这些文件
  • samtools 可执行文件的完整路径是正确的 (/share/bin/samtools/samtools)

改善结果

使用更正的语法和文件对象,预期输出将是:

Filename: ERR001268.bam
Readlines finished!
Mean: 233
SD: 10
Interval is: (213, 252)

此更新版本的脚本捕获输出并将其重定向到 output.txt 文件。

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

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