簡述python檔案操作

2021-08-26 20:43:45 字數 4874 閱讀 1732

讀寫檔案是最常見的io操作,python內建了讀寫檔案的函式,用法和c是相容的.

讀寫檔案前,我們先必須了解一下,在磁碟上讀寫檔案的功能都是由作業系統提供的,現代作業系統不允許普通的程式直接操作磁碟,所以讀寫檔案就是請求作業系統開啟乙個檔案物件(通常稱為檔案描述符),然後通過作業系統提供的介面從這個檔案物件中讀取資料(讀檔案),或者把資料寫入這個檔案物件(寫檔案)

讀檔案

在python中,使用open()函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案

格式為:open(檔案路徑,訪問模式)

#以唯讀方式的模式開啟乙個當前路徑下的test.txt檔案,並將其賦值給變數f

#open()函式預設以唯讀方式寫入,故唯讀模式"r"可省略不寫

f=open("test.txt","r")

#呼叫read()方法一次性讀取檔案的全部內容(read方法適用於讀取檔案內容較少時),python語言將檔案內容讀到記憶體中,用字串的方式表示,並列印到螢幕上

content = f.read() #將程式所得到的返回值存放到變數content中

print(content) #列印其返回值,即就是該檔案的內容

#最後一步是呼叫close()方法關閉檔案,檔案使用完畢之後必須關閉.

f.close()

讀二進位制檔案

input=open("test.txt","rb")
讀取一行內容,使用readline()方法:

f=open("test.txt","r")

f.readline()

結果為:

'this

is first line\n'

讀取所有行的內容,使用readlines()方法

f=open("test.txt","r")

f.readlines()

f.close()

輸出結果為:

['this

is first line\n', 'this

is second line\n']

f.close()
遍歷檔案資料

f=open("test.txt","r")

forline

in f:

print (line)

f.close()

輸出結果為:

this

is first line

this

is second line

this

is third line

那為什麼要關閉檔案呢?

由於記憶體的訪問速度要遠遠快於磁碟的訪問速度,python分配了一塊叫做緩衝區的記憶體空間,用來臨時儲存將要寫入磁碟的資料.一旦緩衝區滿了,或者檔案被關閉了,緩衝區裡的內容就會被寫入磁碟.所以在操作結束後,必須關閉檔案,以確保所有的資料在物理層面上傳輸到磁碟中.

#以只寫的模式開啟乙個當前路徑下的test.txt檔案,並將其賦值給變數f

#訪問模式"w"表示對乙個檔案進行寫入操作,如果該檔案已存在則將其覆蓋,如果不存在則建立該檔案

f=open("test.txt","w")

f.write("hello,world") #使用write()方法將括號中的字串("hello,world")寫入到該檔案內

f.close

#關閉檔案

寫二進位制檔案

output=open("test","wb")
附上訪問模式的說明:

訪問模式    說明

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

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

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

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

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

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

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

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

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

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

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

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

複製檔案

將test.txt檔案複製到本路徑下,檔案名叫hello.txt

old_file= open("test.txt","r") #首先開啟要複製的檔案,並將結果賦值給變數old_file

new_file=open("hello.txt","w") #然後在本路徑下建立乙個新的檔案名叫hello.txt,並將結果賦值於變數new_file

content=old_file.read() #從test.txt檔案中讀取資料,並將其結果賦值給變數content

new_file.write(content) #將test.txt檔案的內容寫入到hello.txt檔案內

old_file.close() #關閉開啟的test.txt檔案

new_file.close() #關閉開啟的hello.txt檔案

複製大檔案

old_file= open("test.txt","r") #首先開啟要複製的檔案,並將結果賦值給變數old_file

new_file=open("hello.txt","w") #然後在本路徑下建立乙個新的檔案名叫hello.txt,並將結果賦值於變數new_file

while true: #多次迴圈,每次讀取固定的長度,避免一次讀取太多導致記憶體爆滿

content=old_file.read(1024) #從test.txt檔案中讀取資料,設定一次讀取1024位元組的字元,並將其結果賦值給變數content

iflen(content)==0:

break

new_file.write(content) #將test.txt檔案的內容寫入到hello.txt檔案內

old_file.close() #關閉開啟的test.txt檔案

new_file.close() #關閉開啟的hello.txt檔案

檔案相關操作

python內建的os模組可以呼叫作業系統提供的介面函式,對檔案或目錄進行操作(實際上作業系統是不允許應用程式直接訪問和操作檔案和目錄的,讀寫檔案就是請求作業系統開啟乙個檔案物件,通常稱為檔案描述符。然後,通過作業系統提供的介面從這個檔案物件中讀取資料,或者把資料寫入這個檔案物件。)

1,檔案重新命名

os模組中的rename()方法可以完成對檔案的重新命名操作

格式為:rename (原檔名,新檔名)

import os  #匯入os模組,匯入之後才可以使用該模組中的方法

os.rename("test.txt","test2.txt") #將當前路徑下的test.txt檔案重新命名為test2.txt

2,刪除檔案

os模組中的remove()方法可以完成對檔案的刪除操作

remove(需要刪除的檔名)

import os

os.remove("test.txt") #刪除當前路徑下的test.txt檔案

3,建立/刪除資料夾

import os

os.mkdir("test") #使用os模組中的mkdir方法建立資料夾

os.rmdir("test") #使用os模組中的rmdir方法刪除檔名

4,獲取當前目錄的絕對路徑

import os

os.getcwd() #使用os模組中的getcwd方法獲取當前目錄的絕對路徑

5,改變檔案建立的預設路徑

import os

os.chdir("../") #改變建立檔案時的預設路徑為當前目錄的上一層目錄

6,列出所制定的目錄下的檔案,類似於windows下的dir,linux下的ls,但以列表的形式列出

import os

a = os.listdir("./") #列出當前目錄下的檔案,將結果賦值給變數a

print(a)

輸出結果為:

['.idea', 'demo1.py', 'demo2.py', 'demo3.py', 'hello.txt', 'test.txt']

#在該列表中每乙個字串即就是所指定路徑下的檔名

python簡述檔案 1 概述

1.概述 本參考手冊是對 python 程式語言的描述。並不適宜作為教程使用。在語言參考文件裡加入過多的實現細節是很危險的 具體實現可能發生改變,對同一語言的其他實現可能使用不同的方式。而在另一方面,cpython 是得到廣泛使用的 python 實現 然而其他一些實現的擁護者也在增加 其中的特殊細...

Python字典增刪操作技巧簡述

python程式語言是一款比較容易學習的計算機通用型語言。對於初學者來說,首先需要掌握的就是其中的一些基礎應用。比如今天我們為大家介紹的python字典的相關操作,就是我們在學習過程中需要熟練掌握的技巧。python字典 dictionary 是一種對映結構的資料型別,由無序的 鍵 值對 組成。字典...

Python字典增刪操作技巧簡述

python程式語言是一款比較容易學習的計算機通用型語言。對於初學者來說,首先需要掌握的就是其中的一些基礎應用。比如今天我們為大家介紹的python字典的相關操作,就是我們在學習過程中需要熟練掌握的技巧。python字典 dictionary 是一種對映結構的資料型別,由無序的 鍵 值對 組成。字典...