python自學成才之路 檔案讀寫操作

2021-09-14 08:49:47 字數 1479 閱讀 7370

python對檔案io操作有兩種格式,第一種是如下形式:

filepath = 'iotest.txt'

try:

f = open(filepath,'r')

print(f.read())

finally:

if f:

f.close()

第二種是如下形式:

filepath = 'iotest.txt'

with open(filepath,'r') as f:

print(f.read())

第二種方式可以理解為第一種方式的縮減版,第一種方式需要顯示的呼叫close來關閉io流,第二種方式with會自動關閉io流。推薦使用第二種方式。

open函式的第乙個引數是檔案路徑,第二個引數時io模式,r表示唯讀,w表示寫操作(寫之前會清空檔案內容),a表示追加操作(不會清空檔案內容)。在r模式下不能寫,在w模式些不能讀,如果想同時能夠執行讀寫操作可以使用r+模式,r+模式下可讀寫,且寫是追加模式寫。

檔案物件讀操作有一下幾種方法:

read():一次性讀入整個檔案內容

readline():讀取一行檔案內容

readlines():讀取整個檔案內容,並返回按行劃分的檔案內容列表

例如有乙個io.txt檔案,內容如下:

hello world

hello world2

hello world4

filepath = 'iotest.txt'

# 使用readline會逐行讀取

with open(filepath,'r') as f:

print(f.readline().strip())

print(f.readline().strip())

輸出:hello world

hello world2

# 使用read會一次性全讀取出來

with open(filepath,'r') as f:

print(f.read())

# 使用readlines會先返回檔案內容列表,將內容先存放到lines中,即使檔案io關閉了,內容還能讀取

with open(filepath,'r') as f:

lines = f.readlines()

for line in lines:

print(line.strip())

# 如果要逐行讀取,直接遍歷檔案物件就可以了

with open(filepath,'r') as f:

for line in f:

print(line.strip())

# 使用a模式表示追加,使用w則表示覆蓋寫

with open(filepath,'a') as f:

f.write("hello world")

Python自學成才之路 什麼是元類

有這麼乙個類 classa object pass a a print type a 輸出 class main a 類a的例項a型別是,如果把type用在類a上會輸出什麼?print type a 輸出 class type 輸出結果,這個type到底是什麼型別,在來看看下面兩個案例。s ads ...

Python自學成才之路 帶有引數的裝飾器

上一節留了點懸念。上一節 函式和裝飾器都可以新增引數,但是裝飾器結構上的區別在於裝飾器是否帶引數。看下面乙個案例 class my decorate object def init self,f 如果裝飾器不帶引數,函式需要作為引數傳遞給這個類的構造器 print 進入到 init self.f f...

自學成才 總結

前言 這次應該是第五次參加自考了吧,我只想說,自考完之後,乙個字,累。這次總共參加了3科,計算機網路 馬克思,資訊資源管理。1.計算機網路 一直跟著小組的腳步,試卷沒有想象的那麼難,只希望過了吧。2.馬克思主義基本原理概論 oh my god 馬克思貌似是在高中時候學過的吧,已經記不太清了,只知道馬...