最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python2寫csv文件中文亂碼問題及解決方法

 更新時間:2022年11月23日 11:04:02   作者:永恒de記憶  
python2最大的坑在于中文編碼問題,遇到中文報錯首先加u,再各種encode、decode,這篇文章給大家介紹Python2寫csv文件中文亂碼問題及解決方法,感興趣的朋友跟隨小編一起看看吧

前言

python2最大的坑在于中文編碼問題,遇到中文報錯首先加u,再各種encode、decode。
當list、tuple、dict里面有中文時,打印出來的是Unicode編碼,這個是無解的。
對中文編碼糾結的建議盡快換python3吧,python2且用且珍惜!

csv中文亂碼

1.open打開csv文件,用writer寫入帶有中文的數(shù)據(jù)時

writer寫入單行writers寫入多行

# coding:utf-8
import csv
 
f = open("xieru.csv", 'wb')
writer = csv.writer(f)
 
# 需要寫入的信息
data = ["客戶名稱", "行業(yè)類型", "客戶聯(lián)系人", "職位", "聯(lián)系方式", "郵箱","地址"]
 
writer.writerow(data)       # 寫入單行
# writer.writerows(datas)    # 寫入多行
 
f.close()

2.打開csv文件,發(fā)現(xiàn)寫入的中文亂碼了

編碼與解碼

1.中文亂碼問題一直是python2揮之不去的痛,這里先弄清楚亂碼原因:

  • python2本身內部代碼的編碼有str和unicode兩種編碼
  • 然而文件寫入到windows系統(tǒng)時候,windows上的是gb2312編碼

所以就導致了亂碼問題

2.先把python里面的中文字符串decode成utf-8,再encode為gbk編碼

data.decode('utf-8').encode('gbk')

3.如果是讀取csv文件的話,就反過來:

data.decode('gbk').encode('utf-8')

解決方案

1.方案一:對字符串轉換編碼(這個太麻煩了,不推薦)

# coding:utf-8
import csv
 
f = open("xieru1.csv", 'wb')
writer = csv.writer(f)
 
# 需要寫入的信息
data = ["客戶名稱", "行業(yè)類型", "客戶聯(lián)系人", "職位", "聯(lián)系方式", "郵箱","地址"]
 
a = []
for i in data:
    a.append(i.decode("utf-8").encode("gbk"))
 
writer.writerow(a)           # 寫入單行
# writer.writerows(datas)    # 寫入多行
 
f.close()

2.方法二:用codecs提供的open方法來指定打開的文件的語言編碼,它會在讀取的時候自動轉換為內部unicode (推薦)

# coding:utf-8
import csv, codecs
 
import sys
reload(sys)
sys.setdefaultencoding('utf8')
 
f = codecs.open("xx.csv", 'wb', "gbk")
writer = csv.writer(f)
writer.writerow(["客戶名稱", "行業(yè)類型", "客戶聯(lián)系人", "職位", "聯(lián)系方式", "郵箱","地址"])
 
# 多組數(shù)據(jù)存放list列表里面
datas = [
    ["客戶名稱", "行業(yè)類型", "客戶聯(lián)系人", "職位", "聯(lián)系方式", "郵箱","地址"],
    ["客戶名稱", "行業(yè)類型", "客戶聯(lián)系人", "職位", "聯(lián)系方式", "郵箱","地址"],
    ["客戶名稱", "行業(yè)類型", "客戶聯(lián)系人", "職位", "聯(lián)系方式", "郵箱","地址"],
       ]
 
writer.writerows(datas)
f.close()

python寫入csv文件時的亂碼問題

今天在使用python的csv庫將數(shù)據(jù)寫入csv文件時候,出現(xiàn)了中文亂碼問題,解決方法是在寫入文件前,先指定utf-8編碼,如下:

import csv
import codecs
if __name__ == "__main__":
    file_name = "data.csv"
    with open(file_name, "wb") as f:
        f.write(codecs.BOM_UTF8)
        csv_write = csv.writer(f)
        csv_write.writerows([["姓名", "年齡"], ["張三", 18]])

得到csv文件,正確的顯示了中文。

到此這篇關于python寫入csv文件時的亂碼問題的文章就介紹到這了,更多相關python寫入csv文件亂碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python線程之定位與銷毀的實現(xiàn)

    Python線程之定位與銷毀的實現(xiàn)

    這篇文章主要介紹了Python線程之定位與銷毀的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Python?NumPy隨機抽模塊介紹及方法

    Python?NumPy隨機抽模塊介紹及方法

    這篇文章主要介紹了Python?NumPy隨機抽模塊介紹及方法,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • Python多線程的使用詳情

    Python多線程的使用詳情

    這篇文章主要介紹了Python多線程的使用詳情,線程之間執(zhí)行是無序的,cpu調度哪個線程就執(zhí)行哪個線程,下文相關介紹需要的小伙伴可以參考一下
    2022-04-04
  • Pytorch中的masked_fill基本知識詳解

    Pytorch中的masked_fill基本知識詳解

    本文介紹了PyTorch中masked_fill函數(shù)的基本使用和原理,該函數(shù)接受一個輸入張量和一個布爾掩碼作為參數(shù),掩碼的形狀必須與輸入張量相同,True表示需要填充的位置,False表示保持原值
    2024-10-10
  • Python(TensorFlow框架)實現(xiàn)手寫數(shù)字識別系統(tǒng)的方法

    Python(TensorFlow框架)實現(xiàn)手寫數(shù)字識別系統(tǒng)的方法

    這篇文章主要介紹了Python(TensorFlow框架)實現(xiàn)手寫數(shù)字識別系統(tǒng)的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Pycharm安裝PyQt5的詳細教程

    Pycharm安裝PyQt5的詳細教程

    PyCharm 是一款功能強大的 Python 編輯器,具有跨平臺性,鑒于目前最新版 PyCharm 使用教程較少,為了節(jié)約時間,來介紹一下Pycharm安裝PyQt5的詳細教程,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Python實現(xiàn)將n個點均勻地分布在球面上的方法

    Python實現(xiàn)將n個點均勻地分布在球面上的方法

    這篇文章主要介紹了Python實現(xiàn)將n個點均勻地分布在球面上的方法,涉及Python繪圖的技巧與相關數(shù)學函數(shù)的調用,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python批量處理PDF文檔輸出自定義關鍵詞的出現(xiàn)次數(shù)

    python批量處理PDF文檔輸出自定義關鍵詞的出現(xiàn)次數(shù)

    這篇文章主要介紹了python批量處理PDF文檔,輸出自定義關鍵詞的出現(xiàn)次數(shù),文中有詳細的代碼示例,需要的朋友可以參考閱讀
    2023-04-04
  • python excel轉換csv代碼實例

    python excel轉換csv代碼實例

    這篇文章主要介紹了python excel轉換csv代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python報錯AssertionError:can only test a child proc問題

    Python報錯AssertionError:can only test a c

    這篇文章主要介紹了Python報錯AssertionError:can only test a child proc問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

沙雅县| 田东县| 岫岩| 肇东市| 庄河市| 和静县| 民县| 龙胜| 乐山市| 贵州省| 兖州市| 固阳县| 庆元县| 简阳市| 武邑县| 重庆市| 抚宁县| 北碚区| 温州市| 定南县| 拉孜县| 太和县| 龙口市| 桐城市| 陆丰市| 盐池县| 重庆市| 自贡市| 内江市| 南岸区| 舞钢市| 祁阳县| 建宁县| 镇赉县| 土默特左旗| 荔浦县| 彭州市| 兴和县| 东安县| 磐石市| 来宾市|