python學習筆記20(讀取檔案內容)

2021-10-22 18:39:12 字數 3476 閱讀 8615

1.一次性讀取檔案全部內容(讀取的檔案milktea和main.py在同一目錄的情況)

'''

讀取與main.py同一目錄的檔案milktea.txt檔案裡面的內容

利用open()函式開啟檔案,返回的是乙個表示檔案的物件,將這個物件命名為file_object

下面這個**是檔案裡面不包含漢字的情況,如果檔案中包含漢字就會出現亂碼

'''with

open

('milktea'

)as file_object:

contents = file_object.read(

)if contents:

print

(contents)

else

:'''相比於原始檔案,該輸出唯一不同的地方就是末尾多了乙個空行。之所以出現這個空行,是因為read()到達檔案末尾時候返回乙個空字串,而將這個空字串顯示出來就是乙個空行'''

# 借助函式rstrip()將空行刪除

print

(contents.rstrip(

))

不刪除末尾空行的效果:

(2)檔案裡面包含漢字的情況:

資料之所以沒有讀出來,是因為python讀取的資料和我們文字裡面預設的文字編碼方式不同,這時候就造成了資料沒有被讀取出來,但是檔案裡面有漢字是很平常的情況啊,我們怎麼辦?

with

open

('milktea'

, encoding=

'utf-8'

)as file_object:

contents = file_object.read(

)print

(contents)

print

('好好生活啊~'

)

12345

56783

aaaa

bbbb

cdef

好好生活

好好生活啊~

個人認為《python讀寫文字檔案和二進位制檔案的方法以及注意事項》這篇文章中關於讀寫文字檔案內容的注意事項非常詳盡,上圖就是擷取自這篇部落格,值得好好看一看。

(3)讀取單行**

with

open

('milktea'

, encoding=

'utf-8'

)as file_object:

# 讀取一行**

contents = file_object.readline(

)# 借助迴圈實現讀取此文字內的所有行內容

while contents:

# 借助readline()讀取到的內容不僅僅包含檔案一行裡的內容,還有回車符

print

(contents.rstrip())

contents = file_object.readline(

)print

('小朋友,你已經看完了我的日記了~'

)

這是這段**的效果圖:

如果我不刪除字串末尾的空白:

關鍵字with在不需要訪問檔案之後將其關閉,這個關閉是python自身在合適的時候進行關閉。

特別注意:

這也就是說我們所建立的file.object只是區域性變數,並不能作為全域性變數使用,要想獲得檔案的內容,借助readline()函式將檔案各行的內容儲存在乙個列表裡面。

# 利用列表將讀取到的內容可以在with引導的函式外使用

file_contents =

with

open

('milktea'

, encoding=

'utf-8'

)as file_object:

# 讀取一行**

contents = file_object.readline(

)# 借助迴圈實現讀取此文字內的所有行內容

while contents:

# 借助readline()讀取到的內容不僅僅包含檔案一行裡的內容,還有回車符

contents = file_object.readline(

)print

('小朋友,你已經看完了我的日記了~'

)print

(file_contents)

小朋友,你已經看完了我的日記了~

['今天風很大\n'

,'我穿的賊暖和\n'

,'哎呀媽呀\n'

,'五點了\n'

,'明天蹲實驗室\n'

,'二歲\n'

,'好好生活\n'

]

通過列表儲存的形式我們很容易看出來,在每讀取完一行的內容之後,contents內容裡面會包含乙個回車符,如果想要跟原來文字檔案的內容一模一樣,就需要借助函式rstrip().

當然在我們傳統的觀念裡面,開啟檔案用open()函式,那麼關閉函式就可以借助close函式,這個是非常正確的思維,但是但是但是,如果在讀取檔案的**中有一處出現了問題,那麼沒等執行到close()函式,程式就卡住了,這時候檔案也並沒有關閉,而檔案沒有關閉就很容易造成資料丟失,所以借用with來讓python自己選擇乙個合適的時候自動關閉檔案也是一種辦法。

2.通過檔案路徑訪問檔案內容

相對路徑格式:

with

open

('text_files\filename.txt'

, encoding=

'utf-8'

)as file_object:

而絕對路徑是將檔案的準確位置告訴python:

在f盤python資料夾裡面建立乙個名為python的txt檔案:

Python學習筆記(四) 檔案讀取

教程 莫煩python 環境 pycharm 寫開啟 寫入內容 text this is a test.nthe second line nfinal line my file open myfile.txt a 以寫形式開啟檔案 my file.write text 往檔案裡寫內容 my file...

python讀取csv,txt,mysql檔案

1.python讀取csv檔案 def get csv path f open path,r encoding utf 8 reader csv.reader f data 以列表形式輸出每一行 for row in reader return data 寫入內容到csv usr bin env p...

Swift2 0 文件學習筆記

最近把 the swift programming language 中文版 粗略地看了一遍,並隨手留了點筆記,以備忘。1 閉包,通過閉包對字串陣列進行排序,閉包的函式體部分由關鍵字in引入 names.sort names.sort 型別推斷,推斷引數型別 names.sort 隱式返回,推斷返回...