目前,我可以將信息打印到stdout和stderr,但是我想打印有關進度的信息並將其打印到stdout,stderr和其他地方。這可能嗎?在stdout和stderr之外打印
回答
據我所知,輸出到控制檯只能通過stdout和stderr。
你想打印到文件,然後如果你喜歡使用print
你可以做到這一點
with open('outfile.txt', 'w') as f:
f.write('this is a test')
或者:
print >> f, 'this is a test'
在上面的例子打開一個名爲outfile.txt
文件爲w
儀式訪問。這意味着任何已經存在的數據將被寫入它的新數據消除。如果你想追加,你可以在a
模式下打開文件。有關更多信息,請參見documentation for open()。
打開的文件需要關閉,使用with
構造爲您負責(如果遇到異常,還會關閉文件)。
原因我想打印進度信息 - 應該打印到該術語。 – Andrew
@Andrew輸出到控制檯只有通過stdout和stderr據我所知。如果沒有,那麼我會很樂意學習新的東西。 – Levon
直接打印到類似unix的機器上的'/ dev/console'可能會起作用,但它不一定是個好主意。 – geoffspear
您可以同時使用logging
模塊將信息記錄到不同的地方:
import logging
logger = logging.getLogger('your_logger')
logger.setLevel(logging.INFO)
file_handler = logging.FileHandler('errors.log')
file_handler.setLevel(logging.ERROR)
logger.addHandler(file_handler)
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
logger.addHandler(stream_handler)
logger.warning('I am a warning')
logger.error('I will be printed, but written to the log file as well')
logger.info('I am an info message')
- 1. 爲什麼在STDERR行之後打印STDOUT行?
- 2. stdin,stdout和stderr在?之間共享?
- 3. Apache Spark Stderr和Stdout
- 4. stderr和stdout的ssh?
- 5. 在使用記錄器時在stderr文件中打印stdout
- 6. Linux/Perl:除STDOUT和STDERR之外的其他輸出緩衝區?
- 7. 如何在Perl中動態地將打印切換到STDOUT/STDERR?
- 8. dup2,stdout和stderr出錯
- 9. Bash腳本stderr和stdout
- 10. stdout和stderr字符編碼
- 11. 管道popen stderr和stdout
- 12. vim過濾器和stdout/stderr
- 13. 從Python函數中抑制stdout/stderr打印
- 14. Python:只從subprocess.call()打印stderr,而不是stdout?
- 15. 如何打印響應正文stdout/stderr上的Rails
- 16. 是否可以使用Curses打印到STDERR而不是STDOUT?
- 17. LLVM stdin/stdout/stderr
- 18. tomcat logging stdout stderr
- 19. 如何在bash中抑制stdout和stderr
- 20. 在DOSKEY宏中重定向STDERR和STDOUT
- 21. 並行計算的stdout和stderr在R
- 22. 在Windows中從SAS捕獲stdout和stderr?
- 23. 在bash中管道stdout和stderr?
- 24. 如何同步記錄stderr和stdout,但只打印標準錯誤屏幕?
- 25. Scons日誌stdout/stderr
- 26. nohup和sed,重定向stderr和stdout
- 27. 無需等待讀取STDOUT和STDERR的外部命令
- 28. 從C++的外部程序捕捉stderr和stdout
- 29. 從外部* nix命令獲得STDOUT,STDERR和響應代碼perl
- 30. 爲Airprint和谷歌雲打印之外的IOS打印sdk
你想去哪裏打印呢? –
你是說你想*模擬*打印輸出到'stdout','stderr',和*別的地方*? –
是的標準輸出,stderr和其他地方 - 到控制檯。 – Andrew