Python學習之檔案處理詳解

2021-08-04 15:08:42 字數 4685 閱讀 4777

本文和大家分享的主要是python

學習python有所幫助。

檔案處理

開啟檔案時,需要指定檔案路徑和以何等方式開啟檔案,開啟後,可以將結果賦值給乙個變數,

這個變數我們稱為控制代碼。這樣我們就可以通過這個控制代碼對此檔案進行操作。使用後關閉。 # 

f= open('

檔案路徑

','開啟方式

',encoding='

字元編碼

') #f

為檔案控制代碼 # 

print('+++++>1',

f. read()) #

輸出全部 # 

print(type(data))

#  print('+++++>2',

f. read()) # 空

#  print('+++++>3',

f. read()) # 空

#  f.

close()  #

檔案關閉 # 

print(

f)  #

可用 #  f.

read()  #

不可用# del 

f  #

僅刪除f控制代碼

**資源

1 f.close():

一定要做,關閉作業系統開啟的檔案,即**作業系統的資源

2 del f:

沒必要做,因為在

python

程式執行完畢後,會自動清理與該程式有關的所有記憶體空間

檔案開啟模式

開啟檔案的模式有: r 

,唯讀模式【預設模式,檔案必須存在,不存在則丟擲異常】 #

,檔案不存在報錯 f=

open('aaaa.py','r')

print(f.read())  #

讀所有print(f.readline(),end='')  #

讀行 print(f.readlines())  #

讀所有將每行放到陣列中

print(f.readable())  #

判斷是否可讀

print(f.writable()) #false

f.close()  #

關閉 w ,只寫模式【不可讀;不存在則建立;存在則清空內容】 #

,檔案不存在則建立空檔案,檔案存在則清空 f=

open('new.txt','w')

f.write('1111111\n')  #

寫入 f.writelines(['22222\n','3333\n','444444\n'])  #

寫入三行

print(f.writable())  #

判斷是否可寫入

f.close()

a , 追加模式【可讀; 

不存在則建立;存在則只追加內容】 #

# f= open('new_2','a',encoding='utf-8')

#  print(

f.readable())  #false

#  print(

f.writable())  #true

#  f.

write('33333\n')

#  f.

write('44444\n')

#  f.writelines(['5555\n','6666\n'])

#  f.

close()

"+" 

表示可以同時讀寫某個檔案 r+

, 讀寫【可讀,可寫】 #

可寫可讀 

開啟檔案的時候檔案就為空,寫的是任意內容,讀的是剛剛寫進去的內容

#要想讀,先移動游標

#讀的游標和寫的游標是兩回事

f = 

open('

複習.py','w+',

encoding='utf-8')

f.write('12237yuiayi')#seek 

制定游標的位置在0位置

f.seek(0)

print(f.

read(3))

f.write('kahkshldkhd')

print('***',f.

read())

f. close()

w+ ,寫讀【可讀,可寫】 #

可讀可寫

f = 

open('

複習.py','r+',encoding='utf-8')

print(

f. read())

f. write('\najshdjkdjk')

f. close()

a+ , 寫讀【可讀,可寫】 #

追加可讀

f = 

open('

複習2.py','a+',

encoding='utf-8')

f. seek(0)

print(f.

read())

"b" 表示以位元組的方式操作 rb

檔案的游標移動

read(3) :

1.  檔案開啟方式為文字模式時,代表讀取

3個字元

2. 檔案開啟方式為

b模式時,代表讀取

3個位元組

用唯讀方式和只寫方式開啟檔案游標都在首,追寫方式開啟在尾。想要自己移動游標只能借助seek(

游標位置

)方法實現

上下文管理

# 上下文管理

with 

open('aaaa.py','r',encoding='utf-8') 

as read_f,\

open('aaaa_new.py','w',encoding='utf-8') 

as write_f:

# 一行太長可以用

\來將一行分成兩行或多行但本質還是一行

data=read_f.

read()

write_f.

write(data)

# 不需要關閉(即不用

close

)此格式會自動關閉

#with 

open() 

as控制代碼,

open() 

as控制代碼 :   #

可以一次開啟多個

#    

對檔案的操作

迴圈每一行

with 

open('a.txt','r',encoding='utf-8') 

asf:

while true:

line=

f.readline()

if not line:

break

print(line,end='')

lines=

f.readlines() #

只適用於小檔案

print(lines)

data=

f. read()

print(type(data))

for line in 

f: #

推薦使用

print(line,end='')

檔案的修改

# 方式一:只適用於小檔案

import os  #

匯入os模組

with 

open('a.txt','r',encoding='utf-8') 

as read_f,\

open('a.txt.swap','w',encoding='utf-8') 

as write_f:

data=read_f.

read()

write_f.

write(data.replace('alex_sb','alex_bsb'))

os.remove('a.txt')  #

移除 os.rename('a.txt.swap','a.txt')  

重新命名 #

方式二:

import os

with 

open('a.txt','r',encoding='utf-8') 

as read_f,\

open('a.txt.swap','w',encoding='utf-8') 

as write_f:

for line in read_f:

write_f.

write(line.replace('alex_bsb','bb_alex_sb'))

os.remove('a.txt')

os.rename('a.txt.swap','a.txt')

#os 模組簡單的來說它是乙個

python

的系統程式設計的操作模組,可以處理檔案和目錄這些我們日常手動需要做的操作。

#import os

Python學習筆記之檔案處理

1 簡單檔案操作流程 開啟檔案 操作 寫入 讀取等 關閉檔案 2 開啟檔案 open fname,mode,encoding,buf 檔案路徑 檔案,開啟方式,開啟檔案編碼格式,緩衝 buffering 大小 可選引數 r 唯讀 w 只寫,每次寫入都會把之前的內容覆蓋 a 追加,在之前的內容後面追加...

詳解Python的檔案處理

目錄 比如像以前在學校讀書的時候,第一門程式設計課設計要求是製作學生管理系統。這就需要使用檔案來處理 也可以用資料庫,但是一般c語言都是很多計算機系新生的首選語言,這時候大概率也不知道資料庫 ycnjgrckgpython 最常用的是open和write函式,如下 open函式 接收乙個檔名,還有其...

python學習之檔案高階處理作業

1 第一種方法src file input 請輸入原始檔的路徑 strip dst file input 請輸入目標檔案的路徑 strip with open r format src file rb as f1,open r format dst file wb as f2 content f1....