Python 板


LINE

謝謝幾位網友,想再請教關於把所有結果存成a.txt檔的問題。 抱歉,敘述不好 修改文章,還請各位指點 2016/4/26 pm11:05 主程式碼 http://dpaste.com/1QE1JPW 我打算把我所寫的程式碼,跑出來的output存成txt檔,但是有幾行出錯了,想跟大家請 教,你可以觀看我程式碼第65行,如下所示 f.write(tag+"\n") 他跳出了錯誤UnicodeEncodeError: 'ascii' codec can't encode character 我不知道該如何修正,是我忘記宣告utf-8嗎? 可是我前述第一行有宣告了 第二個問題是主程式碼的 第74行,d = float (c)/((a+b)-c) 第75行,f.write(d+"\n") 報錯內容為: TypeError: unsupported operand type(s) for +: 'float' and 'str' 因為這兩個問題,造成我無法存成txt檔,還請各位指點,謝謝 -- Sent from my Windows --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.95.247
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1461672826.A.5BF.html
1F:推 tiefblau: 直接print到檔案 如果是py2 print >> f, i 04/26 20:17
2F:→ tiefblau: py3: print(i, file=f) 或是執行的時候直接重導向 04/26 20:18
3F:→ busystudent: 可以再說明清楚一點嗎?我是用py2 04/26 20:19
4F:→ busystudent: print >>f,i是指什麼? 04/26 20:20
5F:推 tiefblau: http://codepad.org/iGLsc9qh 04/26 20:39
6F:→ MOONY135: a=i是多餘的吧 04/26 21:52
※ 編輯: busystudent (1.172.95.247), 04/26/2016 23:02:45 ※ 編輯: busystudent (1.172.95.247), 04/26/2016 23:07:06 ※ 編輯: busystudent (1.172.95.247), 04/26/2016 23:12:41
7F:→ checkIO: str(d) 04/26 23:28
8F:→ checkIO: 基本上error資訊丟去Google就有解答的事情了 04/26 23:31
9F:推 aweimeow: 第一個問題:改用codecs.open('abc.txt', 'w', 'utf-8') 04/26 23:31
10F:→ aweimeow: 記得要 import codecs 哦 04/26 23:31
11F:→ aweimeow: 然後第二個問題就如同上面 c大 所說 04/26 23:32
12F:→ aweimeow: 他錯誤訊息就寫著 float 不能 和 str 結合 04/26 23:32
13F:→ aweimeow: 所以你可以把 float 轉成 string 或是 "%f\n" % d 04/26 23:32
14F:→ busystudent: 感謝留言,所以第一個問題可以推測是txt不支援utf-8` 04/26 23:35
15F:→ busystudent: ,要多宣告嗎? 04/26 23:35
16F:→ checkIO: 編碼問題 抓下來可能是無法辨識的 04/26 23:37
17F:→ checkIO: 因為你一開始宣告是utf8 不然把utf8那行拿掉試試看 04/26 23:39
18F:→ busystudent: 等等 我忽然想到那我要開始就宣告萬國碼 04/26 23:41
19F:→ busystudent: 問題會解決嗎? 04/26 23:41
20F:推 aweimeow: 不會吧我覺得 04/26 23:48
21F:→ octantis: 你們是不是誤會了什麼,開頭宣告的utf8只是表示這份文件 04/27 00:09
22F:→ octantis: 要用哪種編碼來將py檔編成二進位檔,跟你的open一點關係 04/27 00:10
23F:→ octantis: 也沒有,你的open並write預設用的編碼是看sys模組裡的 04/27 00:11
24F:→ octantis: sys.getdefaultencoding(),它才是判斷你的資料該以何種 04/27 00:13
25F:→ octantis: 編碼編成二進位並寫入文件。跟你用beautifulsoup抓進來 04/27 00:14
26F:→ octantis: 的資料也一點關係也沒有,BeautifulSoup會把抓到的資料 04/27 00:16
27F:→ octantis: 轉成Unicode不管資料原本是何種編碼,讀進來就是Unicode 04/27 00:16
28F:→ octantis: 此外開頭的宣告utf8只是'告訴'別人你這份py檔要用什麼編 04/27 00:21
29F:→ busystudent: 了解,感謝說明 04/27 00:21
30F:→ octantis: 碼,並不代表你實際的編碼,你也可以開頭宣告utf8,但把 04/27 00:21
31F:→ octantis: py檔存成ascii,因此在存檔時需特別注意你的存檔編碼跟 04/27 00:23
32F:→ octantis: py檔開頭的宣告是不是同一個,否則別人看你開頭是utf8但 04/27 00:24
33F:→ octantis: 你存成其他的就有可能出現py檔亂碼等情形 04/27 00:25
34F:推 krazy1101: 最近也遇到這問題 推 04/27 14:12







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP