小編給大家分享一下python3中os.popen()使用出錯的解決方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)專注于玉屏企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,商城開發(fā)。玉屏網(wǎng)站建設(shè)公司,為玉屏等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)在當(dāng)前 desktop 目錄下,有如下內(nèi)容:
desktop $ls client.py server.py 中文測試 arcpy.txt codetest.py test.py
如上所示:有一個中文命名的文件 ----> 中文測試
# -*- coding:utf-8 -*- # python3.5.1 import os,sys print (sys.getdefaultencoding()) #系統(tǒng)默認(rèn)編碼 dir_list = os.listdir() for li in dir_list: print (li)
輸出如下:
utf-8 arcpy.txt client.py codetest.py server.py test.py 中文測試
可以看出默認(rèn)編碼為 utf-8,os.listdir()命令可以正常輸出中文字符。
在使用 os.popen()時:
# -*- coding:utf-8 -*- # python3.5.1 import os,sys print (sys.getdefaultencoding()) #系統(tǒng)默認(rèn)編碼 dir_list = os.popen('ls','r').read() for li in dir_list: print (li)
報錯如下:
utf-8 Traceback (most recent call last): File "Desktop/codetest.py", line 8, indir_list = os.popen('ls','r').read() File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 76: ordinal not in range(128)
解決:
命令行執(zhí)行沒有問題,這個是編輯器的事。建議用subprocess
以上是python3中os.popen()使用出錯的解決方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!