python讀取亂碼
A. python讀取中文目錄出現亂碼
先對路徑進行unicode處理,然後再打開。舉例:
inpath = 'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\proction\示波器\0.htm'
uipath = unicode(inpath, "utf8")
然後用"uipath"經過編碼後的路徑去open()即可:
fin = open(uipath)
B. Python為什麼一運行就是亂碼
可能是編碼問題,開頭加上coding:utf-8試試。
C. python中文亂碼是怎麼一回事
python報錯invalid character in identifier,意思就是「標識符中的無效字元」,檢查下有沒有字元是中文的,把中文字元改成英文字元再運行就可以了。
Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。
一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字元在這一行的位置來決定的(而C語言是用一對花括弧{}來明確的定出模塊的邊界的,與字元的位置毫無關系)。這一點曾經引起過爭議。
因為自從C這類的語言誕生後,語言的語法含義與字元的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強製程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。
(3)python讀取亂碼擴展閱讀
Python 中文編碼:
Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時無法正確列印漢字,所以在讀取中文時會報錯。
解決方法為只要在文件開頭加入# -*- coding: UTF-8 -*-或者# coding=utf-8就行了
注意:# coding=utf-8的=號兩邊不要空格。
實例:
(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print( "你好,世界" )
輸出結果為:
你好,世界
D. python字元串是亂碼怎麼辦
顯示亂碼的主要原因是:字元串編碼集問題
其原因詳細:
Windows 下的字元串編碼集為GBK 而我們的Python字元串一般是 UTF-8
代碼詳情:
#!/usr/bin/python
# coding: utf-8
os_char='gb18030' # 定義轉換類型為GB18030
print u"我是字元串" # 直接列印Unicode
print u"我是字元串".encode(os_char) # 轉換為GB18030編碼
print "我是字元串".decode("utf-8").encode(os_char) # 先轉換為UTF-8 再轉換為GB18030
備註:
之前的第一行(#!) 為Linux環境下的執行文件聲明 如 Bash 的聲明為 #!/bin/bash
第二行註明編碼集為GB18030
Linux下的編碼集為 UTF-8
E. 怎麼解決Python3亂碼問題
如果是Python文件用編輯器打開時出現亂碼,將編輯器調試成utf-8或者gb2312顯示。如果是運行Python文件時顯示亂碼,則修改Python文件,在文件頂部添加:# code = utf-8
F. PYTHON獲取網頁源碼亂碼,怎麼辦
text 是系統自行解碼,部分網頁會不對。
content指定解碼,你的網頁是utf-8的,對應解碼就可以了
G. python中讀取文件(路徑含中文)出現亂碼問題。
沒有Python3 。
你試一下
path='Py....'#下面添加一行
path=path.decode('gbk')
H. python解決csv文件用excel打開亂碼問題
【問題】
python輸出的csv文件用excel打開,裡面的中文會變成亂碼,但用window下的記事本或mac下的numbers打開就正常顯示。
原因是python輸出的文件是utf-8編碼寫入的,excel默認以gbk方式讀取,導致亂碼發生。
【解決方法1】文件產出時encoding設置為utf-8-sig
用excel打開csv時,excel會先檢查文件的第一個字元,來了解這個文件是什麼編碼方式,如果這個字元是BOM,excel就知道用utf-8的方式打開這個文件。python自帶了處理BOM的編碼方式uft-8-sig,因此只需要在文件產出時將encoding設置為utf-8-sig。
如果文件不是由python產出的,只需要以utf-8方式讀入再以utf-8-sig方式存儲即可
【解決方法2】懶人法,適用只含簡體中文的文件
用記事本打開,點擊另存為,右下角編碼方式選擇「ANSI」,這個過程是把這個文件改成gbk編碼格式,excel就是默認用gbk方式打開的。
參考: Python寫的csv文件,如何讓 Excel 雙擊打開不亂碼? - 雲+社區 - 騰訊雲
對編碼格式一竅不通的可以閱讀以下網頁
python筆記——二進制和文件編碼_砍柴姑娘Jourosy的博客-CSDN博客
編碼方式之ASCII、ANSI、Unicode概述 - 藍海人 - 博客園
【簡單總結】:
1. 首先需要了解 字元集 和 字元編碼 兩個概念,字元集定義了字元和二進制的一一對應關系,字元編碼規定了如何將字元的編號存儲到計算機中。
2. Unicode是字元集,包含了全球文字的唯一編碼,utf-8是編碼方式,將unicode以某種方式存儲到計算機中。
3. 有些字元集和編碼是結合在一起的,稱作字元集還是編碼都無所謂,比如ASCII,GBK
4. ANSI是各個國家地區不同擴展編碼方式的總稱,互不兼容(可以看出來通用性沒有utf好)
5. 不同編碼方式在轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字元串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。
I. python 讀取圖片 結果是亂碼
如果你要是想顯示為16進制的話,自己可以轉化一下:
importbinascii
printbinascii.b2a_hex(a)
或者更加友好些
count=1
for空春iina:
ifcount%16!=0:
print'%s'%binascii.b2a_hex(a),斗梁耐
else:
print''
渣辯count+=1
這樣就能列印成「不是亂碼」了。
不能理解的問題:顯示為亂碼這有什麼關系嗎?
J. 執行python腳本出現亂碼怎麼解決
執行python腳本出現亂碼的解決方法:首先把中文解碼為unicode,具體方法如:【decode('utf-8')】;然後再轉化為gbk即可,具體方法如:【encode('gbk')】。
問題:
代碼中指定了UTF-8編碼,但是在cmd命令行窗口時列印的中文仍然會亂碼。
(推薦教程:Python入門教程)
原因:
windows下中文默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
解決方法:
可以先把中文解碼為unicode,然後再轉化為gbk來解決這個問題。
舉例:
運行結果: