首頁 >後端開發 >Python教學 >如何將控制台輸出重新導向到 Python 中的檔案?

如何將控制台輸出重新導向到 Python 中的檔案?

DDD
DDD原創
2024-12-06 17:54:14790瀏覽

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