2014-11-25 86 views
0

我不是Bash和Python的專家,所以這個問題可能顯得很愚蠢。Python stdout日誌記錄:終端vs bash文件

我有一個叫做learn.py的Python腳本,當我重定向到一個日誌文件時,我注意到了標準輸出的兩種不同行爲。

如果我從終端調用這個,我可以看到日誌文件的大小在腳本運行時增長。

$ ./learn.py > file.log 

但是,如果我爲同一個目的是bash文件:

#!/bin/bash 
./learn.py > file.log 

腳本開始(我pgrep檢查),但它似乎並沒有跑,因爲日誌文件保持爲空。我錯過了什麼嗎?

+0

你能張貼你的' learn.py'腳本呢? – Balthamos 2014-11-25 01:23:27

+0

即使所有你放在'learn.py'是'print'你好嗎?「'... – 2014-11-25 01:23:41

+0

@Balthamos'learn.py'是一個使用NLTK庫的複雜腳本。 @JoranBeasley它的作品只是「你好」。是否有可能只在計算結束時填充文件? – mommi84 2014-11-25 01:32:06

回答

0

我解決了使用Logging facility for Python,通過插入

import logging 
logging.basicConfig(filename='file.log',level=logging.INFO) 

logging.info("...") 

最終bash腳本取代的print "..."每次發生:

#!/bin/bash 
./learn.py 
+1

另請參閱https://docs.python.org/3/library/syslog.html – SMUsamaShah 2018-02-07 07:32:45