中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python程序輸出無內容怎么辦

發布時間:2020-08-04 14:42:03 來源:億速云 閱讀:396 作者:小豬 欄目:開發技術

這篇文章主要為大家展示了python程序輸出無內容怎么辦,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

問題緣由

某項目中使用python腳本方式將日志文件中的數據持續的轉換格式輸出到另一文件中以供其他日志分析應用使用。但是當后臺運行采取重定向方式輸出到某一文件時,發現并沒有內容輸出,命令如下:

python xxx.py > xxx.log &

測試發現,當前臺直接輸出到終端時正常,使用后臺運行重定向的方式輸出到文件中時無法輸出。

解決辦法

發現是在程序運行時,輸出有緩存,只有當程序運行結束或者緩沖區滿后才會輸出。因為程序是一致在運行的所以不可能等待程序結束在輸出。并且要求是有實時性的所以等緩沖區滿輸出的方式也不可取。

所以采用在python運行時加上-u參數,如:

python -u xxx.py > xxx.log &

-u參數的意義是不使用緩沖的方式輸入輸出

詳細如下:

Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, also put stdin, stdout and stderr in binary mode. Note that there is internal buffering in xreadlines(), readlines() and file-object iterators (“for line in sys.stdin”) which is not influenced by this option. To work around this, you will want to use “sys.stdin.readline()” inside a “while 1:” loop.

補充知識:python中運行代碼時沒有報錯但是也沒有輸出而且還有exit code 0的結束標志

如下所示:

f=open("passwd.txt",'r')
print (f.read(4))
f.close()

這是想要執行的代碼

passwd.txt中的內容

ntp:x:38:38::/etc/ntp:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
saslauth:x:498:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

但是輸出的結果是

Process finished with exit code 0

后來排查發現原來是解釋器的問題

我之前使用的解釋器是pycharm提供的虛擬解釋器

#####如何查看解釋器

點file–>new projects

python程序輸出無內容怎么辦

如果選擇的是2就是使用了pycharm提供的虛擬解釋器,又因為passwd.txt文件不是在虛擬環境中的所以就沒有輸出。

點擊3然后選擇你已經下載好的解釋器即可。

以上就是關于python程序輸出無內容怎么辦的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保山市| 尖扎县| 晋中市| 玉门市| 顺平县| 越西县| 潜江市| 永新县| 泽普县| 拜泉县| 稻城县| 循化| 合川市| 黑龙江省| 洛川县| 文成县| 竹溪县| 偃师市| 上林县| 洪江市| 四川省| 古蔺县| 高要市| 郓城县| 洪泽县| 望奎县| 积石山| 高唐县| 晋中市| 佛坪县| 高州市| 河北区| 金沙县| 海盐县| 资中县| 龙泉市| 凤翔县| 沈阳市| 岳阳市| 云南省| 大渡口区|