Python在向CSV檔案寫中文時亂碼的處理辦法

2021-10-10 14:12:13 字數 1575 閱讀 4321

python2最大的坑在於中文編碼問題,遇到中文報錯首先加u,再各種encode、decode。

當list、tuple、dict裡面有中文時,列印出來的是unicode編碼,這個是無解的。

對中文編碼糾結的建議盡快換python3吧,python2且用且珍惜!

1.open開啟csv檔案,用writer寫入帶有中文的資料時

# coding:utf-8

import csv

f = open("xieru.csv", 'wb')

writer = csv.writer(f)

# 需要寫入的資訊 data = ["客戶名稱", "行業型別", "客戶聯絡人", "職位", "****", "郵箱","位址"] writer.writerow(data) # 寫入單行 # writer.writerows(datas) # 寫入多行 f.close()

2.開啟csv檔案,發現寫入的中文亂碼了

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

所以就導致了亂碼問題

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

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

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

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

# coding:utf-8

import csv

f = open("xieru1.csv", 'wb')

writer = csv.writer(f)

# 需要寫入的資訊

# 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(["客戶名稱", "行業型別", "客戶聯絡人", "職位", "****", "郵箱","位址"]) # 多組資料存放list列表裡面 datas = [ ["客戶名稱", "行業型別", "客戶聯絡人", "職位", "****", "郵箱","位址"], ["客戶名稱", "行業型別", "客戶聯絡人", "職位", "****", "郵箱","位址"], ["客戶名稱", "行業型別", "客戶聯絡人", "職位", "****", "郵箱","位址"], ] writer.writerows(datas) f.close()

從悠悠處搬過來的。

寫csv檔案 Python讀寫CSV

逗號分隔值 comma separated values,csv,有時也稱為字元分隔值,因為分隔字元也可以不是逗號 其檔案以純文字形式儲存 資料 數字和文字 1 首先匯入csv模板 2 建立乙個csv檔案物件 3 開啟檔案進行讀取 結果 測試1 軟體測試工程師 測試2 軟體測試工程師 測試3 軟體測...

python 寫資料為 csv 檔案

1 簡介 csv 檔案 類似於 excle 那樣有一定的排序結構。方便資料觀察,可以使用記事本或者 excle開啟 下面我們就嘗試將一組資料儲存成csv 檔案 2 功能 import csv lists 姓名 年齡 小明 19 小黑 20 小白 21 小灰 22 with open test.csv...

Python中用print方法向檔案中寫入內容

乙個小功能,我就是想用print功能實現,不想用write import os os.chdir usr tem char my name is yangyanxing f open test.txt w print f,char但是python3中還可以用以下的方式 import os os.ch...