python檔案的操作 day07

2022-07-22 00:15:34 字數 2988 閱讀 8158

今天學習了python中的檔案操作,不僅學會了操作命令,更重要的是明白了python中,對檔案的處理方式。、

1、讀完檔案後,檔案指標會停留在檔案的末尾,如果繼續再次讀檔案時,將讀取不到內容。

2、寫檔案時,會從檔案的末尾寫入,不允許在中間插入,或對中間的內容進行修改。 

3、在寫入檔案時,會將寫入內容儲存在快取區中, 並不會立即寫入硬碟,如果想立即寫入硬碟的檔案中,可以用flush方法。

4、程式關閉時,會自動關閉開啟的檔案,不過要養成好的習慣,在程式結束前,關閉檔案。

import

sys,time

for line in range(50): #

利用 sys模組中的標準輸入輸出,來模擬進度條,驗證flush的使用。

sys.stdout.write("*"

) time.sleep(0.1) #

等待sys.stdout.flush()

'''file1=open("learn.txt",'r',encoding='utf-8')# 讀的模式

file1=open("learn.txt","r+",encoding='utf-8')# 讀寫模式,這是一種比較常用的模式。

file1=open("learn.txt","w",encoding='utf-8')# 寫的模式,如果檔案存在,則會先清空檔案。否則新建檔案。

file1=open("learn.txt","w+",encoding='utf-8')#寫讀模式 ,比較雞肋。

file1=open("learn.txt","a",encoding='utf-8')#追加模式,

file1=open("learn.txt","a+",encoding='utf-8')#追加讀寫模式。

file1=open("learn.txt","rb")#讀二進位制模式。還有相應的"wb',"ab"寫二進位制 追加二進位制。

print(file1.readable())#是否可讀

print(file1.writable())#是否可寫

print(file1.seekable())#是否可轉到其它位置。

print(file1.closed)#是否關閉。

file1.flush() #重新整理記憶體,寫入硬碟。用於實時操作,如銀行訪問。不用等快取滿了後再寫,而是實時寫入硬 盤。

print (file1.tell()) #這個tell,能顯示當前字元的位置。

file1.seek(100)#跳轉到指定字元位置。

print (file1.encoding)#顯示檔案的編碼標準,如顯示 :utf-8

print (file1.fileno()) #開啟檔案,作業系統io介面中的編號,不需要關注。

#file1.write("\n這是檔案的第二行")#寫入。

''''''

這兩種迴圈方式應用於小檔案,不適合於大檔案,在實際應用中不常用,知道即可。

for i in range(5):

print (file1.readline().strip()) 讀取一行

for index,line in enumerate(file1.readlines()): 將整個檔案讀到乙個列表中。

print (index+1,':',line.strip())

以下是高效的方法。

count=0

for line in file1:

if count==3:

print (str.center('我是分隔線',50,'-'))

count+=1

continue

print (line.strip())

count += 1

'''file1=open("

learn.text

",'w+

',encoding='

utf-8')

file1.truncate(10)#從指定位置截斷。保留前邊的,去提後邊的。 

file1.close()

修改檔案內容的兩種方法,提倡用第一種方法。

file1=open("

learn.txt

",'r

',encoding='

utf-8')

file2=open("

learn.bak

","w

",encoding="

utf-8")

for linetxt in

file1:

if"第三行"

inlinetxt:

linetxt=linetxt.replace("

第三行","

分隔線"

)#通過將舊檔案中的內容寫入新檔案的方法,進行修改。

file2.write(linetxt)

file1.close()

file2.close()

1 file1=open("

learn.txt

",'r

',encoding="

utf-8")

2 file_data=file1.readlines()

3file1.close()

4 temp_txt_data=''

5for line in

file_data:6if

"第三行"in

line:

7 line=line.replace("

第三行","

分隔線"

)#整個讀出後,再進行寫入,不提倡這種方法。

8 temp_txt_data+=line

9print

(line)

10 file2=open("

learn.txt

",'w

',encoding="

utf-8")

11file2.write(temp_txt_data)

12 file2.close()

Python學習筆記 day0

本部落格標題設計敏感關鍵字0day,違反相關法律法規,現已處理。1.輸入 raw input 這個可以輸入一行。和c 不同,它不能讀取單個整數 我的意思是,它是以字串儲存的。所以沒有什麼諸如 d這種東西。name raw input 這樣就可以讀入乙個字串,相當於gets name 考慮到人性化設計...

python闖關 python闖關 Day05

乙個簡單的 選單 usr bin env python coding utf 8 mymenu 動物 貓 黃貓 花貓 狗 二哈 金毛 植物 樹 大樹 小樹 草 綠草 矮草 menu list list mymenu.keys while true print 編號 center 50,for i i...

python闖關 python闖關 Day02

q1 寫乙個使用者迴圈猜年齡的遊戲,猜對就退出,猜不對就繼續猜,猜三次,提示使用者是否繼續,使用者回答y或者y就繼續猜,三次之後再重複,回答n或n就結束遊戲。usr bin env python coding utf 8 猜年齡 import random age random.randint 1,...