掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
使用程序難免會有出錯的時候,如何從大篇代碼中找出錯誤,不僅考驗?zāi)芰?,還要考驗小伙們的耐心。辛辛苦苦敲出的代碼運行不出結(jié)果,非常著急是可以理解的。那么我們在python3中使用os.popen()出錯該怎么辦?本篇文章小編同樣以錯誤的操作方法為大家進行講解,一起找尋不對的地方吧。

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的信宜網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
在當前 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)默認編碼 dir_list = os.listdir() for li in dir_list: print (li)
輸出如下:
utf-8 arcpy.txt client.py codetest.py server.py test.py 中文測試
可以看出默認編碼為 utf-8,os.listdir()命令可以正常輸出中文字符。
在使用 os.popen()時:
# -*- coding:utf-8 -*-
# python3.5.1
import os,sys
print (sys.getdefaultencoding()) #系統(tǒng)默認編碼
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
對于這個解決方法,有的小伙伴們覺得太簡單了,但是我們找尋方法的過程是困難的,學會的趕緊保存吧。更多Python學習推薦:PyThon學習網(wǎng)教學中心。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流