Python讀取文件

自學(xué)Python一周,嘗試用Python讀取自己編寫的txt文件,文件讀取時總遇到些小問題,以下是個人的總結(jié)

Python的文件分兩種:文本文件及二進制文件。

文本文件:以純ASCII編碼

二進制文件:音頻,視頻,圖像文件等。

文件的讀取包括:文件打開,文件操作,文件關(guān)閉等

文件的打開模式,讀取模式有以下幾種:



以下是一段簡單的文件讀取代碼:

import codecs#庫導(dǎo)入,方便文件讀取,解碼

def getData(lst):

? ? ? #解碼,data.txt編碼格式為utf-8

? ? ?#編寫txt時要注意編碼格式的選擇,有utf-8 without BOM 及utf-8格式,相應(yīng)的解碼格式為‘utf-8’,'utf-8-sig'

? ? ?with codecs.open('data.txt','r','utf-8-sig') as infile:

? ? ? ? ? ? line = infile.readline()

? ? ? ? ? ? ?while line!='':

? ? ? ? ? ? ? ? ? ? ? line = line.strip()#去除前后空格

? ? ? ? ? ? ? ? ? ? ? ?lines = list(map(float,line.split(',')))#分割字符串,并轉(zhuǎn)為list累型

? ? ? ? ? ? ? ? ? ? ? ?lst.append(lines)

? ? ? ? ? ? ? ? ? ? ? ?line = str(infile.readline())

? ? ? ? ? ? ? ? print(lst)

? ? ? ? infile.close()

#函數(shù)調(diào)用

getData()

data.txt

300,0,144,1,0,0

300,0,144,0,1,0

300,0,144,0,0,1

300,0,144,1,1,0

300,0,108,0,1,1

184,0, 72,1,0,1

184,0, 72,0,0,0

184,0, 72,0,0,0

184,0, 72,0,0,0

文件讀取問題:

1. ?lines = list(map(float,line.split(',')))

ValueError: could not convert string to float: '\ufeff300'

解碼格式不對應(yīng)導(dǎo)致出錯,參考編碼與解碼:

stackoverflow.com/questions/17912307/u-ufeff-in-python-string

2.編寫txt文件時要注意編碼格式的選擇,文件讀取時要進行相應(yīng)的解碼

3.ANSI編碼格式時,無需解碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Python的文本處理是經(jīng)常碰到的一個問題,Python的文本文件的內(nèi)容讀取中,有三類方法:read()、read...
    翎月閱讀 144,087評論 3 12
  • 1.讀取文件夾中多個txt文檔dest = "sougou" #文檔的路徑for root, dirs, fil...
    qthink閱讀 5,828評論 0 0
  • 今天我想用pandas讀取我電腦上面的excel文件,但咋樣都沒有成功,出現(xiàn)的問題截圖如下: 其實我的代碼的寫法是...
    六六的建斌閱讀 563評論 0 0
  • 有時候我們在處理日志文件時候不需要關(guān)注日志文件之前的內(nèi)容,只需要關(guān)注文件新追加的內(nèi)容,就好像linux的tail ...
    打工是不可能打工的1閱讀 1,083評論 0 0
  • 姓名:母光艷 公司:寧波貞觀電器 第235期,利他二組 【日精進打卡第201天】 【知-學(xué)習(xí)】 誦讀《六項精進》大...
    母光焱閱讀 165評論 0 0

友情鏈接更多精彩內(nèi)容