當前位置:首頁 » 編程語言 » python讀取中文路徑

python讀取中文路徑

發布時間: 2023-01-24 06:43:04

『壹』 python中讀取文件(路徑含中文)出現亂碼問題。

沒有Python3 。

你試一下

path='Py....'#下面添加一行
path=path.decode('gbk')

『貳』 python讀寫有中文的文件時,是否需要設置編碼格式

需要:
with open("路徑","模式",encoding="utf8") as f:

如果不確定編碼格式,後面讀取可能會出問題

『叄』 pathlib2 中文路徑出錯

編碼問題可能導致python讀取中文路徑時出錯,使python讀取中文路徑失敗
解決方法一:路徑拆分單獨編碼
方法二:對全部路徑用unicode格式編碼
1.choice_5_29_spyder.py 文件路徑不能有中文(導致莫名報錯,python 3環境下沒有報錯)
2.get_im_context.py 文件路徑中有中文導致只能run,不能debug(python 2環境下只能run不能debug)

『肆』 python文件的創建、寫入、讀取

最近在構思如何 本地化股票數據 ,覺得有必要復習一下python對文件的創建、寫入、和讀取。

首先先了解一下對於文件的處理都有常用函數:

open(path, mode):生成文件對象。

參數說明:path文件路徑、mode文件的操作模式

文件的操作模式說明

1、寫入模式:『w』創建、『wb』創建二進制、『a』追加內容、『ab』二進制形式追加內容(另外如在後面添加『+』號,附加讀取功能如:『w+』)

可用write()、writelines()寫入內容、close()保存文件

注意:windows系統在輸入寫入中文時,輸入參數 encoding=『utf-8』

可用read()函數對文件內容進行讀取

注意:讀取的內容是從結尾開始的,用seek(0)函數指定讀取位置為開頭

這里我用『w+』模式來舉例

2、讀取模式:『r』讀取內容、『rb』讀取二進制內容(區別於寫入模式的讀取,讀取模式從開頭開始讀取)

除了read()、還有readline()調用一次返回一行數據、readlines()返回每行數據list

另外還有mode屬性:看查文件對象的模式、closed屬性:判斷文件是否關閉、name屬性:返迴文件名

這里我還要介紹一個關鍵字with,他是一個表達式能為調用的文件對象別名,且自動關閉文件。

『伍』 如何解決Python中文問題

python的中文問題一直是困擾新手的頭疼問題,Python的發行版至今尚未包括任何中文支持模塊。當然,幾乎可以確定的是,在將來的版本中,python會徹底解決此問題,不用我們這么麻煩了。 筆者使用的是2.5版本。Python的版本可以通過調用sys模塊的sys.version查看。在幾個月的學習中,主要遇到以下問題:

1. print列印中文的問題:

在編輯器中輸入一段測試代碼:

s=』測試』

print s
運行結果如下:

Non-ASCII character '\xb2' in file c:\Documents and Settings\Administrator\桌面\2.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details: 2.py, line 1, pos 0

原因是如果文件里有非ASCII字元,需要指定編碼聲明。把2.py文件的編碼重新改為utf-8,並加上編碼聲明:

# -*- coding: utf-8 -*-

s=』測試』

print s
運行後可以正確列印中文。

2.中文路徑的問題。

在D盤下保存一個名字為『中文.txt『的文件。運行如下測試代碼:

# -*- coding: utf-8 -*-

f=open('D:\\中文.txt', 'r')

print f.read()
運行結果如下:

IOError: [Errno 2] No such file or directory: 'D:\\\xe4\xb8\xad\xe6\x96\x87.txt'

字元串有很多的編碼,不同的系統和平台有各自的編碼 ,為了實現系統或平台之間的信息交互可能需要編碼轉換。這里只需要先使用UNICODE編碼一下,這樣再讀取中文路徑就不會有問題了:

復制代碼

# -*- coding: utf-8 -*-

path='D:\\中文.txt'
spath=unicode(path , "utf8")
f=open(spath,'r')
print f.read()
復制代碼
然後就可以正確顯示文件內容

總結:

所有的中文顯示問題都可以歸結為編碼問題,遇到其他類似的問題,那隻能仔細看文檔,靠你的經驗,靠你多做測試。而且根據python所報出來的錯誤一般也可以判斷出來。那麼當發現需要編碼轉換時,剩下的就是如何正確進行碼制轉換。

為了正確處理多語言文本,Python在2.0版後引入了Unicode字元串。從那時起,Python語言中的字元串就分為兩種:一種是2.0版之前就已經使用很久的傳統Python字元串,一種則是新的Unicode字元串。在Python語言中,一般的解決辦法是使用unicode()內建函數對一個傳統Python字元串進行「解碼」,得到一個Unicode字元串,然後又通過Unicode字元串的encode()方法對這個Unicode字元串進行「編碼」,將其「編碼」成為傳統Python字元串。

『陸』 python讀取中文目錄出現亂碼

先對路徑進行unicode處理,然後再打開。舉例:

inpath = 'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\proction\示波器\0.htm'
uipath = unicode(inpath, "utf8")
然後用"uipath"經過編碼後的路徑去open()即可:
fin = open(uipath)

『柒』 讀取python遍歷中文目錄得到的文件路徑報錯

這是因為路徑裡麵包含中文的原因:

  1. linux的系統字元編碼默認為utf-8,而要搜索的文件路徑nameFile是Unicode,需要進行解碼成unicode,因此作如下修改:

  2. fout=codecs.open(nameFile.encode("utf-8"),"w","utf-8"
  3. 當然,另外一種方法就是修改為英文的路徑;

  4. 關於編碼和解碼的知識,請參考:http://www.cnblogs.com/qiernonstop/p/3634462.html

『捌』 如何用Python 打開包含中文的路徑(是打開文件夾,不是文件)

start_directory="D:\\我的項目文件\\8482\\".dencode('utf8').encode('cp936') # 轉換一下編碼應該就OK了

『玖』 python讀取中文命名的.py文件

python讀取中文名的文件一直比較麻煩
目前得到的可靠解決方案:

strPath = "類.py" #這里的strpath是你的中文路徑名
a = unicode(strPath , "utf-8")
print list(fileinput.input(a))

熱點內容
linux查看selinux狀態 發布:2025-07-20 13:36:35 瀏覽:914
福利資源解壓密碼 發布:2025-07-20 13:34:10 瀏覽:269
我的世界怎麼在手機搞伺服器 發布:2025-07-20 13:26:07 瀏覽:905
android系統鍵盤 發布:2025-07-20 13:19:38 瀏覽:500
程序化交易演算法 發布:2025-07-20 13:09:58 瀏覽:973
已關閉伺服器是什麼意思 發布:2025-07-20 13:06:49 瀏覽:709
三星s5密碼多少錢 發布:2025-07-20 12:55:14 瀏覽:961
密碼忘記了怎麼找回 發布:2025-07-20 12:46:18 瀏覽:534
華為的密碼鎖為什麼開不了 發布:2025-07-20 12:45:35 瀏覽:133
app登錄密碼在哪裡 發布:2025-07-20 12:22:31 瀏覽:693