python學習 檔案處理

2022-05-29 09:48:10 字數 4398 閱讀 7444

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

open(檔名,訪問模式)

示例如下:

f = open('

test.txt

', '

w')

第二個引數mode的預設值是『r』,可用的mode有以下幾種

訪問模式

說明

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

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

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

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

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

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

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

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

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

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

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

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

思維導圖如下(撇開b模式)

示例如下:

#

新建乙個檔案,檔名為:test.txt

f = open('

test.txt

', 'w'

)#關閉這個檔案

f.close()

使用write()可以完成向檔案寫入資料

demo:

f = open('

test.txt

', 'w'

)f.write(

'hello world, i am here!')

f.close()

注意:使用read(num)可以從檔案中讀取資料,num表示要從檔案中讀取的資料的長度(單位是位元組),如果沒有傳入num,那麼就表示讀取檔案中所有的資料

demo:

#

讀取指定長度

f = open('

test.txt

', 'r'

)content = f.read(5)

print

(content)

#全部讀取

content =f.read()

print

(content)

f.close()

注意:就像read沒有引數時一樣,readlines可以按照行的方式把整個檔案中的內容進行一次性讀取,並且返回的是乙個列表,其中每一行的資料為乙個元素

f=open('

aa.txt

','w')

f.write(

'first line\nsecond line\nthird line\n')

f=open('

aa.txt

','r')

s=f.readlines()

print(s)

結果:

因為返回的是列表,所以返回值是可以被迭代的,加上迴圈可以實現逐一訪問每一行

f=open('

aa.txt

','w')

f.write(

'first line\nsecond line\nthird line\n')

f=open('

aa.txt

','r')

for line in

f.readlines():

print

(line)

f.close()

當檔案有很多行時,可以用f.readline()進行操作,每次呼叫這個method,返回結果都會作為新的一行被寫入檔案

f=open('

aa.txt

','w')

f.write(

'first line\nsecond line\nthird line\n')

f=open('

aa.txt

','r')

s=f.readline()#

執行結果:first line

print

(s)s=f.readline()#

執行結果:second line

print(s)

可以將乙個列表寫入乙個檔案(從0開始,按順序將列表中對應的元素寫入檔案的每一行)

alist=['

first line\n

','second line\n

','third line\n']

with open(

'aa.txt

','w

') as f:

f.writelines(alist)

f=open('

aa.txt

','r')

for line in

f.readlines():

print

(line)

f.close()

針對檔案操作,python另外乙個語句塊的寫法更便於閱讀

with open(...)as f:

f.write(...)

這樣,就可以把針對當前以特定模式開啟的檔案的各種操作都寫入同乙個語句塊了

with open('

aa.txt

','w

') as f:

f.write(

'first line\nsecond line\nthird line\n')

with open(

'aa.txt

','r

') as f:

for line in

f.readlines():

print(line)

使用with語句塊帶來的另乙個額外的好處就是不用寫f.close()了

有些時候,需要對檔案進行重新命名、刪除等一些操作,python的os模組中都有這麼功能

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

rename(需要修改的檔名, 新的檔名)

import

osos.rename(

"a.txt

", "

aa.txt

")

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

remove(待刪除的檔名)

import

osos.remove(

"a.txt

")

實際開發中,有時需要用程式的方式對資料夾進行一定的操作,比如建立、刪除等

就像對檔案操作需要os模組一樣,如果要操作資料夾,同樣需要os模組

import

osos.mkdir("張三

")

import

osos.getcwd()

import

osos.chdir(

"../

")

import

osos.listdir("./

")

import

osos.rmdir("張三

")

檔案的基本操作如下:

1.開啟檔案,可以直接使用內建函式open(),基本模式有r和w

2.刪除檔案,需要呼叫os模組,使用os.remove()。在刪除檔案之前,最好確認檔案真實存在

3.讀寫檔案,可以用f.read(),f.readline(),f.readlines(),f.write(),f.writelines()

4.可以用with把相關操作都放到乙個語句塊中

Python學習 檔案操作

python使用open來開啟資料流 data open data.txt 下面是乙個讀取乙個檔案,然後逐行輸出的 try data open data.txt for each line in data try role,line spoken each line.split 1 print ro...

Python學習(檔案讀寫)

一 用os.makedirs 建立新資料夾 在桌面上建立乙個名稱為1的資料夾。import os os.makedirs c users king desktop 1 二 檢視檔案大小和資料夾內容 1.os.path.getsize path 返回path 引數中檔案的位元組數。import os ...

python學習 檔案操作

馮諾依曼體系架構 cpu由運算器和控制器組成 檔案io常用操作 開啟操作 open file,mode r buffering 1,encoding none,errors none,newline none,closefd true,opener none 開啟乙個檔案,返回乙個檔案物件 流物件 ...