日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python csv写文件,用Excel打开中文乱码解决

發(fā)布時(shí)間:2023/12/18 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python csv写文件,用Excel打开中文乱码解决 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在學(xué)習(xí)python爬蟲(chóng),需要將爬取的數(shù)據(jù)存儲(chǔ)為csv格式,方便用Excel打開(kāi)更直觀的分析。

這里應(yīng)用的是豆瓣的排行榜,爬蟲(chóng)入門好像逃不脫這個(gè)網(wǎng)站,哈哈)

python 中csv的代碼段是這樣的

import csvcsv_headers = {'劇名','評(píng)分','年份','參與評(píng)論數(shù)'} # 打開(kāi)一個(gè)用來(lái)存儲(chǔ)數(shù)據(jù)的文件(文件可以是已經(jīng)存在,也可以是不存在) f = open('douban.csv','w',encoding='utf-8') # 初始化一個(gè)csv.writer()對(duì)象 f_csv = csv.writer(f) # 將需要存儲(chǔ)的數(shù)據(jù)進(jìn)行寫入 f_csv.writerow(csv_headers) f_csv.writerow(data)

用文本編輯器打開(kāi)顯示是正常的,但是用Excel打開(kāi)時(shí),發(fā)現(xiàn)中文字符出現(xiàn)了亂碼情況,如圖:

? ? ? ??

辦法一:

這種情況的出現(xiàn)是因?yàn)橛胑xcel 打開(kāi)CSV文件時(shí),會(huì)詢問(wèn)用戶設(shè)置文件的編碼格式,但因?yàn)橛脩魧?duì)Excel的一些默認(rèn)設(shè)置,可能導(dǎo)致用戶在打開(kāi)csv文件時(shí)亂碼,這時(shí)需要在代碼中為生成的csv文件添加bom頭,為文件強(qiáng)制設(shè)置utf-8編碼格式避免用戶打開(kāi)文件亂碼。

utf-8保存的csv格式文件要讓Excel正常打開(kāi)的話,必須加入在文件最前面加入BOM(Byte order )。如果接收者收到以EF BB BF開(kāi)頭的字節(jié)流,就知道這是UTF-8編碼了。

所以在write文件的內(nèi)容數(shù)據(jù)之前,先write一下BOM。

python3+ 在寫文件之前,只需要添加一條代碼即可解決:

f_csv.writerow('\ufeff')

辦法二:

也可以將encoding=‘utf-8' 改成 ’utf-8-sig',也能起到相同的效果,正常顯示中文字符。

f = open('douban.csv','w',encoding='utf-8-sig')

區(qū)別如下:

1、”utf-8“ 是以字節(jié)為編碼單元,它的字節(jié)順序在所有系統(tǒng)中都是一樣的,沒(méi)有字節(jié)序問(wèn)題,因此它不需要BOM,所以當(dāng)用"utf-8"編碼方式讀取帶有BOM的文件時(shí),它會(huì)把BOM當(dāng)做是文件內(nèi)容來(lái)處理, 也就會(huì)發(fā)生類似上邊的錯(cuò)誤。

2、“utf-8-sig"中sig全拼為 signature 也就是"帶有簽名的utf-8”, 因此"utf-8-sig"讀取帶有BOM的"utf-8文件時(shí)"會(huì)把BOM單獨(dú)處理,與文本內(nèi)容隔離開(kāi),也是我們期望的結(jié)果。

最后,用Excel打開(kāi)后顯示都是正常的中文字符。(大功告成!^_^)

?

總結(jié)

以上是生活随笔為你收集整理的python csv写文件,用Excel打开中文乱码解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。