我想使用Python下載網站上的所有圖片。我已經有了HTML文件的標題,因此我使用os.mkdir()
來創建文件夾,但標題包含中文。當樹莓派(OS:Debian的)執行下面的代碼,有一個例外:使用Python到mkdir的樹莓派
UnicodeEncodeError: 'ascii' codec can't encode characters in position 20-38: ordinal not in range(128)
try:
os.mkdir(path)
except:
print "create folder failed"
continue
一切都很好,如果我跑我的Mac上的代碼。
我GOOGLE了這個問題,並嘗試下面的代碼,但它不工作。
reload(sys)
sys.setdefaultencoding('utf-8')
更新:
我已經改變了我的代碼了很多,閱讀有關Unicode,UTF-8 .etc一些文章。但是,每次我在Raspberry Pi上運行代碼時,都會崩潰。然後,我在PC上安裝了Debian OS(這是我在Raspberry Pi上安裝的),運行代碼,一切正常。
所以這個問題實際上不是由代碼引起的,而是由SSH造成的。
如果我在桌面環境中直接在Debian PC上運行代碼,那沒關係。如果我使用SSH從我的Mac登錄到shell,然後運行代碼,會出現一個異常「Unicode ....」。
我認爲它是由環境變量引起的,我會揣摩明天,謝謝你們:-)
'setdefaultencoding'與'print'或'write'相當 - 嘗試'os.mkdir(path.encode('utf-8'))' – furas
哇,它的工作,謝謝。但是改變代碼太麻煩了。有沒有辦法讓它像我的Mac一樣工作? –
嘗試'print sys.getfilesystemencoding()'看看你得到了什麼。也許如果你在Debian中設置環境變量'LANG',那麼你將不需要使用'encode()'。同樣檢查bash'echo $ LANG'。 – furas