欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

python2最大的坑在于中文編碼問題,遇到中文報錯首先加u,再各種encode、decode。
當(dāng)list、tuple、dict里面有中文時,打印出來的是Unicode編碼,這個是無解的。
對中文編碼糾結(jié)的建議盡快換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本身內(nèi)部代碼的編碼有str和unicode兩種編碼
  • 然而文件寫入到windows系統(tǒng)時候,windows上的是gb2312編碼

所以就導(dǎo)致了亂碼問題

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

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

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

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

解決方案

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

# 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方法來指定打開的文件的語言編碼,它會在讀取的時候自動轉(zhuǎn)換為內(nèi)部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文件,正確的顯示了中文。

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

相關(guān)文章

  • Python3 io文本及原始流I/O工具用法詳解

    Python3 io文本及原始流I/O工具用法詳解

    這篇文章主要介紹了Python3 io文本及原始流I/O工具用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python將多個list合并為1個list的方法

    Python將多個list合并為1個list的方法

    今天小編就為大家分享一篇Python將多個list合并為1個list的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • django的ORM模型的實現(xiàn)原理

    django的ORM模型的實現(xiàn)原理

    這篇文章主要介紹了django的ORM模型的實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Python排序函數(shù)的使用方法詳解

    Python排序函數(shù)的使用方法詳解

    這篇文章主要給大家介紹了關(guān)于Python排序函數(shù)使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 用Python實現(xiàn)QQ游戲大家來找茬輔助工具

    用Python實現(xiàn)QQ游戲大家來找茬輔助工具

    這是一個用于QQ大家來找茬(美女找茬)的輔助外掛,開發(fā)的原因是看到老爸天天在玩這個游戲,分數(shù)是慘不忍睹的負4000多。本來是想寫個很簡單的東西,但由于過程中老爸的多次嘲諷,逼得我不得不盡力完善,最后形成了一個小小的產(chǎn)品。
    2014-09-09
  • 利用Python進行音頻信號處理和音樂生成的代碼示例

    利用Python進行音頻信號處理和音樂生成的代碼示例

    隨著計算機技術(shù)的快速發(fā)展,音頻信號處理和音樂生成逐漸成為了Python程序員們的關(guān)注點,本文將介紹如何利用Python進行音頻信號處理和音樂生成,包括基本概念、常用庫的使用以及實際的代碼示例,需要的朋友可以參考下
    2024-06-06
  • 使用Python實現(xiàn)跳一跳自動跳躍功能

    使用Python實現(xiàn)跳一跳自動跳躍功能

    這篇文章主要介紹了使用Python實現(xiàn)跳一跳自動跳躍功能,本文圖文并茂通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • 詳解python配置虛擬環(huán)境

    詳解python配置虛擬環(huán)境

    這篇文章主要介紹了python配置虛擬環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Pycharm搭建Django項目詳細教程(看完這一篇就夠了)

    Pycharm搭建Django項目詳細教程(看完這一篇就夠了)

    這篇文章主要給大家介紹了關(guān)于Pycharm搭建Django項目的詳細教程,想要學(xué)習(xí)的小伙伴看完這一篇就夠了,pycharm是一種Python?IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,需要的朋友可以參考下
    2023-11-11
  • Appium自動化測試實現(xiàn)九宮格解鎖

    Appium自動化測試實現(xiàn)九宮格解鎖

    本文主要介紹了Appium自動化測試實現(xiàn)九宮格解鎖,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論