處理Python2 7讀寫檔案中的中文亂碼問題

2021-08-08 03:21:31 字數 1548 閱讀 2395

python2.7對於中文編碼的問題處理的並不好,這幾天在爬資料的時候經常會遇到中文的編碼問題。但是本人對編碼原理不了解,也沒時間深究其中的原理。在此僅從應用的角度做一下總結,

在python**中的任何地方出現中文,編譯時都會報錯,這時可以在**的首行新增相應說明,明確utf-8編碼格式,可以解決一般情況下的中文報錯。當然,程式設計中遇到具體問題還需具體分析啦。

#encoding:utf-8

或者# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding(』utf8』) # 設定預設編碼格式為'utf-8'

檔案讀寫中遇到中文,通常不會報錯,但是最後執行結果顯示亂碼,給後續處理帶來不便。

讀檔案時,如果檔案路徑、檔名中有中文,需要使用unicode函式將其編碼為』utf-8』格式,然後再進行正常的檔案讀取。以我常用的pandas的read_csv函式為例,使用如下**可以成功地讀取名為「poi總表」的csv檔案,儲存在dataframe資料型別的poi_list。

import pandas as pd

inpath = 'c:\\poi總表.csv'

**path = unicode(inpath, 'utf-8')**

poi_list = pd.read_csv(path)

檔名有中文,檔名亂碼

當想要將程式執行結果儲存到文字檔案時,文字檔案的命名中如果有中文,不做處理檔名會出現亂碼。利用unicode函式進行編碼可解。unicode(『中文.csv』,』utf-8』)

檔案內容有中文,excel開啟內容亂碼

如果將包含中文的結果輸出到csv檔案,一般預設使用excel開啟檔案時,檔案內容會出現亂碼,而使用文字編輯器開啟不會亂碼。這是因為excel預設的編碼方式為『gbk『,而文字編輯器預設的格式為『utf-8』。使用codecs包在建立檔案後新增語句f.write(codecs.bom_utf8)可解

name='語文'

f = open(name+'.csv','w')

f.write('123,語文')

f.close()

#修改編碼

import codecs

f = open(**unicode(name+'.csv','utf-8')**,'w') # 檔名不亂碼

**f.write(codecs.bom_utf8) # excel開啟內容不亂碼的核心語句**

f.write('123,語文')

f.close()

輸出結果:

#檔名:璇枃.csv

#excel開啟 123 璇枃

#文字編輯器開啟 123,語文

#改編碼後

#檔名:語文.csv

#excel開啟 123 語文

#文字編輯器開啟 123,語文

python2 7中文編碼 python2 7

我從外部api中獲得了乙個字串 u4ece u8d77 u70b9 u5411 u6b63 u5357 u65b9 u5411 u51fa u53d1,u884c u9a76170 u7c73,u76f4 u884c u8fdb u5165 u4e2d u5173 u6751 u4e1c u8def...

python2 7換行 Python2 7基礎語法

1.建立檔案xx.py usr bin python3 print hello,world 2.linux下執行 python hello.py 3.編碼 預設字串unicode 設定編碼 coding utf 8 4.識別符號 第乙個字元必須是字母表中字母或下劃線 識別符號的其他的部分有字母 數字...

python2 7是什麼 python2 7是什麼

pyton2.7是python在2010年發布的乙個版本。python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言,具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。下面來解釋一下python這門語言 python是一種...