看板 Python 關於我們 聯絡資訊
Console default big5 Python Shell(GUI) Unicode Windows XP SP3 BIG5, Python 2.7.1 -------------------------------------------------- #coding=utf-8 import os import sys #reload(sys) #sys.setdefaultencoding('utf-8') fileList = [] rootdir = unicode(sys.argv[1]) #rootdir = u'c:\' for root, subFolders, files in os.walk(rootdir): for file in files: v = os.path.join(root,file) print v #f=open(v.encode(sys.getfilesystemencoding()), "r") f=open(v, "r") f.close() fileList.append(os.path.join(root,file)) print len(fileList) --------------------------------------------------- c:\test\SYMANTEC防火墙.wps 上面的程式在 Console 跑時 程式最前面加了 #coding=utf-8 在繁体中文的檔名中都沒什麼問題, 但遇到了簡体中文, 就會出錯了 . 上面程式在 Python Shell(GUI) 跑時 在這個環境下跑都沒什麼問題(簡体中文 OK), 但 GUI 很吃資源, print 太多東西很快就掉了(很慢) 請問要怎麼讓 Console 下可以處理簡体中文檔名? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.121.210 ※ 編輯: zha0 來自: 220.135.121.210 (07/03 19:07)
zha0:看來是python在win下的問題,用win32 api解了。 07/03 22:17
zha0:應該說是console 07/03 22:18
os653:這應該跟你程式沒關係,純粹是console不能印簡體字 07/04 11:08
os653:試試看把print v改成print v.encode('mbcs') 07/04 11:22
os653:不太確定這方法是不是因為我有裝Unicode補完計畫才有用 07/04 11:23
os653:而且這方法治標不治本,遇到某些字一樣會爆掉 07/04 11:24
os653:印象中這問題在python2.x好像無解,因為python印東西到win 07/04 11:26
os653:console一定會轉成console的字集,轉不了就爆了 07/04 11:28
os653:google console utf-8 python 會有些討論跟解法可以看看 07/04 11:30
os653:以上所說有錯請指正,這問題也困擾我很久了... 07/04 11:30
※ 編輯: zha0 (1.160.12.39), 07/19/2014 21:47:48