今天學習了python中的檔案操作,不僅學會了操作命令,更重要的是明白了python中,對檔案的處理方式。、
1、讀完檔案後,檔案指標會停留在檔案的末尾,如果繼續再次讀檔案時,將讀取不到內容。
2、寫檔案時,會從檔案的末尾寫入,不允許在中間插入,或對中間的內容進行修改。
3、在寫入檔案時,會將寫入內容儲存在快取區中, 並不會立即寫入硬碟,如果想立即寫入硬碟的檔案中,可以用flush方法。
4、程式關閉時,會自動關閉開啟的檔案,不過要養成好的習慣,在程式結束前,關閉檔案。
importsys,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,...