python 檔案讀取

2021-09-13 03:57:03 字數 2224 閱讀 3884

python檔案操作的一般步驟是:開啟檔案,讀取檔案/寫入檔案,關閉檔案三部分

python的開啟檔案操作:

open('filename')

with open('filename') as f:

pass

使用open函式,open函式可以接受兩個引數,第乙個引數是檔案的路徑,第二個引數是檔案開啟的模式。預設為唯讀模式開啟檔案。使用with即使發生錯誤可以關閉檔案。

下面列出檔案物件的訪問的模式:

檔案模式   操作

r  以唯讀方式開啟

ru 或 ua 以讀方式開啟, 同時提供通用換行符支援 (pep 278)

w  以寫方式開啟 (必要時清空)

a  以追加模式開啟 (從 eof 開始, 必要時建立新檔案)

r+ 以讀寫模式開啟

w+ 以讀寫模式開啟 (參見 w )

a+ 以讀寫模式開啟 (參見 a )

rb 以二進位制讀模式開啟

wb 以二進位制寫模式開啟 (參見 w )

ab 以二進位制追加模式開啟 (參見 a )

rb+ 以二進位制讀寫模式開啟 (參見 r+ )

wb+ 以二進位制讀寫模式開啟 (參見 w+ )

ab+ 以二進位制讀寫模式開啟 (參見 a+ )

x    如果檔案存在報錯,不存在則建立

***加b模式開啟,不可以在指定encoding,切寫入時也需要轉換為位元組寫入檔案

下面是一些開啟檔案的例子:

f = open('/etc/motd') # 以讀方式開啟

f = open('test', 'w') # 以寫方式開啟

f = open('data', 'r+') # 以讀寫方式開啟

f = open('io.sys', 'rb') # 以二進位制讀模式開啟

bytes 字串轉換位元組型別

n=bytes(李傑,encoding='utf-8')[轉換的字元,可以是變數,轉換後的編碼]

位元組轉換為字串

str(bytes(李傑,encoding='utf-8'),encoding='utf-8)

檔案的關閉操作:

python的關閉操作很簡單,是用的是close()函式

python的讀取操作:

read([size])方法用來直接讀取位元組到字串中, 最多讀取給定數目個位元組. 如果沒有給定 size引數(預設值為 -1)或者 size 值為負, 檔案將被讀取直至末尾.

readline([size])方法用來讀一行,如果定義了size,有可能返回的只是一行的一部分.每次一行,迴圈讀取,直到檔案末尾

readlines([size])把檔案每一行作為乙個list的乙個成員,並返回這個list。其實它的內部是通過迴圈呼叫readline()來實現的。  如果提供size引數,size是表示讀取內容的總長,也就是說可能唯讀到檔案的一部分。

python的​​​​​​​寫操作:

write()內建方法功能與 read() 和 readline() 相反. 它把含有文字資料或二進位制資料塊的字串寫入到檔案中去. 

writelines(list):把list的內容全部寫到檔案中(多行一次性寫入)。這個函式也只是忠實地寫入,不會在每行後面加上任何東西。

python的檔案內移動:

seek()方法(類似 c 中的 fseek() 函式)可以在檔案中移動檔案指標到不同的位置. offset位元組代表相對於某個位置偏移量. 位置的預設值為 0 , 代表從檔案開頭算起(即絕對偏移量), 1 代表從當前位置算起, 2 代表從檔案末尾算起. 如果你是乙個 c 程式設計師,並且使用過了 fseek() , 那麼,0, 1, 2 分別對應著常量 seek_set, seek_cur, 以及 seek_end. 當人們開啟檔案進行讀寫操作的時候就會接觸到 seek()方法。    

python高階讀取檔案 Python讀取檔案內容

開啟檔案之後,就可以讀取檔案的內容,檔案物件提供多種讀取檔案內容的方法。開啟test.txt檔案 f open test.txt r 開啟test.txt檔案 f.close 關閉檔案 test.txt檔案有以下內容 hello world.hello python.hello imooc.讀取若干...

Python檔案讀取

python提供了多種方法實現檔案讀取操作 1 read 2 readline 3 readlines 4 xreadlines 很多人也在糾結到底應該選擇哪種方式,甚至疑問在處理大檔案時應該選擇哪種方式,因為擔心檔案過大導致記憶體佔用率過高甚至無法完全載入。其實,這個問題是多餘的,在引入了迭代器和...

python檔案讀取

1.讀取txt檔案 read 讀取整行檔案 readline 讀取一行資料 readines 讀取所有行的資料 讀取txt檔案 user file open user info.txt r lines user file.readlines forline inlines username line...