這篇文章運用簡單易懂的例子給大家介紹Python實現(xiàn)操作文件的方法教程,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
10余年的新絳網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整新絳建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“新絳網(wǎng)站設計”,“新絳網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。一、文件的概念
在計算機中,文件是以二進制的方式保存在磁盤上的。
文件分為文本文件和二進制文件。
1、文本文件
可以使用文本編輯軟件查看,本質(zhì)上還是二進制文件,例如:python 的源程序。
2、二進制文件
保存的內(nèi)容不是給人直接閱讀的,而是提供給其他軟件使用的。例如:圖片文件、音頻文件、視頻文件等等,二進制文件不能使用文本編輯軟件查看。
Python 中,對文件的操作有很多種,常見的操作包括創(chuàng)建、刪除、修改權(quán)限、讀取、寫入等,這些操作可大致分為以下 2 類:
刪除、修改權(quán)限:作用于文件本身,屬于系統(tǒng)級操作。
寫入、讀取:是文件最常用的操作,作用于文件的內(nèi)容,屬于應用級操作。
二、文件的基本操作
1、操作文件的步驟
文件的應用級操作可以分為以下 3 步,每一步都需要借助對應的函數(shù)實現(xiàn):
打開文件:使用 open() 函數(shù),該函數(shù)會返回一個文件對象;
對已打開文件做讀/寫操作:讀取文件內(nèi)容可使用 read()、readline() 以及 readlines() 函數(shù);向文件中寫入內(nèi)容,可以使用 write() 函數(shù)。
關(guān)閉文件:完成對文件的讀/寫操作之后,最后需要關(guān)閉文件,可以使用 close() 函數(shù)。
2、打開文件的方式
在 Python 中,如果想要操作文件,首先需要創(chuàng)建或者打開指定的文件,并創(chuàng)建一個文件對象,而這些工作可以通過內(nèi)置的 open() 函數(shù)實現(xiàn)。
語法如下:
打開文件的常用模式
模式 | 說明 |
---|---|
r | 以只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式。如果文件不存在,拋出異常 |
w | 以只寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創(chuàng)建新文件 |
a | 以追加方式打開文件。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果文件不存在,創(chuàng)建新文件進行寫入 |
r+ | 以讀寫方式打開文件。文件的指針將會放在文件的開頭。如果文件不存在,拋出異常 |
w+ | 以讀寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創(chuàng)建新文件 |
a+ | 以讀寫方式打開文件。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果文件不存在,創(chuàng)建新文件進行寫入 |
文件打開方式
open()是否需要緩沖區(qū)
通常情況下、建議大家在使用 open() 函數(shù)時打開緩沖區(qū),即不需要修改 buffing 參數(shù)的值。
如果 buffing 參數(shù)的值為 0(或者 False),則表示在打開指定文件時不使用緩沖區(qū);如果 buffing 參數(shù)值為大于 1 的整數(shù),該整數(shù)用于指定緩沖區(qū)的大?。▎挝皇亲止?jié));如果 buffing 參數(shù)的值為負數(shù),則代表使用默認的緩沖區(qū)大小。
目前為止計算機內(nèi)存的 I/O 速度仍遠遠高于計算機外設(例如鍵盤、鼠標、硬盤等)的 I/O 速度,如果不使用緩沖區(qū),則程序在執(zhí)行 I/O 操作時,內(nèi)存和外設就必須進行同步讀寫操作,也就是說,內(nèi)存必須等待外設輸入(輸出)一個字節(jié)之后,才能再次輸出(輸入)一個字節(jié)。這意味著,內(nèi)存中的程序大部分時間都處于等待狀態(tài)。
而如果使用緩沖區(qū),則程序在執(zhí)行輸出操作時,會先將所有數(shù)據(jù)都輸出到緩沖區(qū)中,然后繼續(xù)執(zhí)行其它操作,緩沖區(qū)中的數(shù)據(jù)會有外設自行讀取處理;同樣,當程序執(zhí)行輸入操作時,會先等外設將數(shù)據(jù)讀入緩沖區(qū)中,無需同外設做同步讀寫操作。
3、read 方法 —— 讀取文件
read 方法可以一次性讀入并返回文件的所有內(nèi)容。
read() 函數(shù)的基本語法格式如下:
file.read([size])
其中,file 表示已打開的文件對象;size 作為一個可選參數(shù),用于指定一次最多可讀取的字符(字節(jié))個數(shù),如果省略,則默認一次性讀取所有內(nèi)容。
如果忘記關(guān)閉文件,會造成系統(tǒng)資源消耗,而且會影響到后續(xù)對文件的訪問。
注意:read 方法執(zhí)行后,會把文件指針移動到文件的末尾。
示例:
# 1. 打開 - 文件名需要注意大小寫
file = open("README")# 2. 讀取
text = file.read()
print(text)# 3. 關(guān)閉
file.close()
在開發(fā)中,通常會先編寫打開和關(guān)閉的代碼,再編寫中間針對文件的讀/寫操作!
4、按行讀取文件內(nèi)容
read 方法默認會把文件的所有內(nèi)容一次性讀取到內(nèi)存。
如果文件太大,對內(nèi)存的占用會非常嚴重。
readline 方法可以一次讀取一行內(nèi)容,包含最后的換行符“\n”。方法執(zhí)行后,會把文件指針移動到下一行,準備再次讀取。
file.readline([size])
其中,file 為打開的文件對象;size 為可選參數(shù),用于指定讀取每一行時,一次最多讀取的字符(字節(jié))數(shù)。
讀取大文件的正確姿勢
# 打開文件 file = open("README") while True: # 讀取一行內(nèi)容 text = file.readline() # 判斷是否讀到內(nèi)容 if not text: break # 每讀取一行的末尾已經(jīng)有了一個 `\n` print(text, end="") # 關(guān)閉文件 file.close()