高階第十八顆 Python對檔案的操作

2022-05-25 01:51:14 字數 3578 閱讀 6825

在windows中,我們可以很容易地建立、修改和刪除檔案。我們熟悉的檔案型別也有很多:txt、mkv、***、docx...

在python中,我們依舊可以執行建立、修改和刪除檔案的操作。下面一起來看:

1、示例

file=open("

sample111.txt

",'r')

lines=file.readlines()

for line in

lines:

print

(line)

file.close()

看一下執行的結果:

>>> import

readline

11111111111

22222222222

33333333333

44444444444

55555555555

我的txt文件,檔名是sample111,字尾是txt。內容有5行。

2、分析一下

2.1 格式

開啟檔案,就要關閉檔案。所以可以看到有open,最後就要加上close。

file=open('a','b')。其中a是乙個包含文件路徑的檔名;b是開啟檔案時附帶的指令,具體見下表:

r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

rb以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。

r+開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

rb+以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

wb以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

w+開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

wb+以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

如果只提供了路徑和文件名,而未提供附帶指令,則預設為'r',也就是唯讀。

上述指令列表十分重要,比如'w',會覆蓋現有檔案內容,所以使用時一定要當心!!!

3、使用open就要使用對應的close。編碼規模小的時候沒有問題,一旦編碼行暴增會出現忘記關閉的情況,那有沒有不需要使用close的辦法呢。回答是肯定的。

>>> with open('

sample111.txt

') as f:

for i in

f:

print

(i)

11111111111

22222222222

33333333333

44444444444

55555555555

區別在於,在open之前輸入了乙個with,這樣close就不需要我們手動執行。

4、讀檔案。

以r模式開啟的文件,可以有幾種方法讀取裡面的內容,分別是readline()、readlines()和read()。大家看一下區別。

先看readline()。sample111.txt文件中有5行,使用readline只能讀取第一行。

>>> file=open('

sample111.txt

','r')

>>> a=file.readline()

>>> print

(a)11111111111

>>> print

(a)11111111111

>>> file.close()

再看readlines()。一次性讀取文件中所有內容,並把內容以列表的形式儲存為乙個可迭代物件。

>>> file=open('

sample111.txt

','r')

>>> a=file.readlines()

>>> print

(a)[

'11111111111\n

', '

22222222222\n

', '

33333333333\n

', '

44444444444\n

', '

55555555555']

>>> file.close()

最後看read()

>>> file=open('

sample111.txt

','r')

>>> a=file.read()

>>> print

(a)11111111111

22222222222

33333333333

44444444444

55555555555

>>> file.close()

5、寫檔案。

>>> file=open('

sample111.txt

','w')

>>> file.write('

i wanna learn python!!!')

23>>> file.close()

從指令列表中可以看到,當傳入的指令是『w』時,會對已有文件做清除內容的操作,這個大家一定要看清!!!別問我是怎麼知道的。

>>> file=open('

sample222.txt

','w')

>>> file.write('

what r u doing?')

15>>> file.close()

此時python.exe所在目錄中就會生成乙個新的txt文件,文件名是sample222。內容呢,就是上面的:what r u doing?

with依然可以使用,用來自動執行close()的操作。

6、前面說過,open指定的文件,可以是乙個包含文件路徑的文件,我的sample111.txt文件的路徑是什麼呢?是這個:

python承認的路徑是這樣的:

斜槓不一樣!!!

>>> with open('

','r

') as f:

for i in

f:

print

(i)

i wanna learn python!!!

如果你一意孤行,非要使用windows提供的路徑,機會得到乙個報錯,說找不到sample111.txt這個文件。

學習python 第十八天

併發程式設計 python中實現併發程式設計的三種方案 多執行緒 多程序和非同步i o。併發程式設計的好處在於可以提公升程式的執行效率以及改善使用者體驗 程序和執行緒的區別和聯絡 程序 作業系統分配記憶體的基本單位 乙個程序可以包含乙個或多個執行緒 執行緒 作業系統分配cpu的基本單位 併發程式設計...

十八 python 對檔案讀寫

檔案的讀寫按道理是應該在前面有所提及的,居然忘了,主要是比較簡單,所以一直不想寫,現今補上這一部分的內容。方法一 如下 f open foo.txt 返回乙個檔案物件 line f.readline 呼叫檔案的 readline 方法 while line print line,後面跟 將忽略換行符...

第十八章 檔案傳輸協議

1.ftp協議簡介 1 ftp協議是網際網路上廣泛使用的檔案傳輸協議 2 客戶端 伺服器模式,基於tcp 3 ftp採用雙tcp連線方式 控制連線使用tcp埠號21 資料連線使用tcp埠號20 4 ftp有兩種檔案傳輸模式 5 ftp採用兩種資料傳輸方式 主動方式 被動方式 2.ftp雙tcp連線方...