python檔案讀取

2021-09-23 17:12:49 字數 1985 閱讀 4690

檔案的讀取操作

檔案:什麼是檔案

檔案是用於資料儲存的單位

檔案通常用來長期儲存設定

檔案中的資料是以位元組為單位進行順序儲存的

記憶體的讀寫速度快/ 磁碟的讀寫速度慢

檔案的操作步驟:

開啟檔案

讀寫檔案

關閉檔案

python中開啟檔案open與with open 的區別?

區別:應用場景不同

try…except…主要是用來處理檔案不存在的情況的,檔案不存在則open()的報錯會被處理成提示資訊,不會阻塞程式的執行;

2 with open()主要用來保證檔案一定會關閉,但是如果檔案不存在導致報錯,依然會阻塞程式繼續執行。

3 通俗總結來說,try…except比較繁瑣一點,主要用來解決【讀取檔案】操作是檔案不存在的問題。with…open更加簡潔,主要用來[寫入檔案]操作時,保證檔案關閉。

4 但是,try…except…finally 雖然繁瑣但是可以同時解決上述兩個場景。

注意:呼叫read()會一次性讀取檔案的全部內容,如果檔案有10g,記憶體就爆了,所以,要保險起見,可以反覆呼叫read(size)方法,每次最多讀取size個位元組的內容。另外,呼叫readline()可以每次讀取一行內容,呼叫readlines()一次讀取所有內容並按行返回list。因此,要根據需要決定怎麼呼叫

一、 檔案讀取

使用with open

# 檔案

# 讀取檔案(放於python工作路徑下)

# 使用關鍵字with時,open()返回的檔案物件只在with**塊內可用,如果要在with**塊外訪問檔案的內容,可在with**塊內將檔案的各行儲存在乙個列表中

with open('pi_million_digits.txt') as f:

contents = f.read()

print(contents.rstrip()) # rstrip():刪除(剝除)字串末尾的空白

# 直接使用檔案路徑:注意(windows使用反斜槓\,linux使用斜槓/)

# with open('c:\users\x6ti\desktop\python\python檔案讀取\pi_million_digits.txt') as f

二、 遍歷檔案

# 遍歷檔案

# 逐行讀取

filename = 'learning_python.txt'

with open(filename) as f:

for line in f:

print(line.rstrip())

建立乙個包含檔案各行內容的列表

# 建立乙個包含檔案各行內容的列表

filename = 'learning_python.txt'

with open(filename) as f:

lines = f.readlines()

# readlines():從檔案在讀取每一行,並將其儲存在乙個列表中

# 此時 lines為乙個列表

print(type(lines))

for line in lines:

print(line.rstrip())

三、 寫入檔案

# 寫入檔案

filename = 'sb.txt'

with open(filename, 'w') as f:

f.write("飛龍在天")

f.write("南韓網咖\n")

f.write("避雨")

# open():三個有用實參;r(唯讀),w(寫入,重新寫入,清空原檔案),a(附加模式,新增不覆蓋),r+(讀寫)

四、 檔案物件的方法

見菜鳥教程 檔案方法

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...