[問題] Python 2.7 print中文回errno 2

看板Python作者 (scotie)時間4年前 (2020/05/04 20:31), 4年前編輯推噓5(5020)
留言25則, 13人參與, 4年前最新討論串1/1
最近再嚐試理解Python 2.7的編碼機制 使用下面程式碼在win 7 cmd line下測試會報錯 Errno 2 No such file or directory 不太能理解,我以為這是open file時找不到檔名的錯誤訊息,煩請高手指點一下~ # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') str_ch = '中文測試'.decode('utf-8') print str_ch --------------------------------------------- D:\Scripts>python codec.py 文測試Traceback (most recent call last): File "codec.py", line 18, in <module> print str_ch IOError: [Errno 2] No such file or directory --t Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.25.184 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1588595463.A.6F2.html

05/04 22:18, 4年前 , 1F
沒必要建議不要再研究2.7了, py2已經要死掉了
05/04 22:18, 1F

05/04 22:29, 4年前 , 2F
po一下完整的traceback
05/04 22:29, 2F

05/04 22:30, 4年前 , 3F
都eol 研究身體健康的?
05/04 22:30, 3F

05/05 07:08, 4年前 , 4F
改用3好嗎
05/05 07:08, 4F

05/05 09:47, 4年前 , 5F
2020 了 還在 2.7
05/05 09:47, 5F

05/05 12:05, 4年前 , 6F
用u”中文”
05/05 12:05, 6F

05/05 13:12, 4年前 , 7F
No such file or directory是找不到檔案,與中文沒關係
05/05 13:12, 7F

05/05 15:33, 4年前 , 8F
改用:str_ch = u'中文測試'.decode('utf-8')
05/05 15:33, 8F

05/05 17:49, 4年前 , 9F
mbcs
05/05 17:49, 9F

05/05 20:31, 4年前 , 10F
附上完整msg
05/05 20:31, 10F
※ 編輯: scotie (42.72.225.7 臺灣), 05/05/2020 20:32:48 ※ 編輯: scotie (42.72.225.7 臺灣), 05/05/2020 20:34:09

05/05 20:35, 4年前 , 11F
另外有在cmd下 set PYTHONIOENCODING=utf-8
05/05 20:35, 11F

05/05 21:29, 4年前 , 12F
你提供的原始碼和錯誤訊息對不起來,六行哪來 "line 18"
05/05 21:29, 12F

05/05 21:29, 4年前 , 13F
亦或是你可以用你貼出的六行程式碼重現錯誤嗎?
05/05 21:29, 13F

05/06 16:21, 4年前 , 14F
就這程度還要用python2, 那你愛怎麼折騰就怎麼折騰
05/06 16:21, 14F

05/06 16:22, 4年前 , 15F
任何正經回答都是浪費時間
05/06 16:22, 15F

05/06 17:32, 4年前 , 16F
推樓上。不要瞎折騰
05/06 17:32, 16F

05/06 20:37, 4年前 , 17F
主要是工作環境還是用2.7所以想研究一下背後的原理,順便
05/06 20:37, 17F

05/06 20:37, 4年前 , 18F
增加對編碼的理解。也不是說非得在2.7上實現這功能,只是G
05/06 20:37, 18F

05/06 20:37, 4年前 , 19F
oogle了半天找不到解法蠻好奇root cause是什麼
05/06 20:37, 19F

05/07 10:18, 4年前 , 20F
我可以體會公司東西還用舊版的煎熬
05/07 10:18, 20F

05/07 10:18, 4年前 , 21F
我公司還再用Excel 2003 甚至還有XP系統....
05/07 10:18, 21F

05/07 11:51, 4年前 , 22F
你先要能貼對原始環境的程式跟tb再來討論
05/07 11:51, 22F

05/07 12:59, 4年前 , 23F
這樣程式碼片段根本是來浪費大家時間
05/07 12:59, 23F

05/08 02:37, 4年前 , 24F
print string必需先轉成system encoding
05/08 02:37, 24F

05/08 02:39, 4年前 , 25F
windows中文應該是cp950吧 sys.setdefault改掉也沒用吧
05/08 02:39, 25F
文章代碼(AID): #1Ui0i7Ro (Python)