小編給大家分享一下python3中os.popen()使用出錯的解決方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、廣豐網(wǎng)站維護、網(wǎng)站推廣。
在當(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è)資訊頻道!