20181202_檔案操作學習
file = open(file = '檔案位置',mode = '開啟模式', encoding = '編碼模式')
關於讀的
#以只讀方式開啟
mode= 引數 為 ‘r',encoding引數寫該檔案的編碼方式(如GKB)
#以只讀二進位制方式開啟
mode引數為‘rb',encoding不用寫
#以讀寫的方式開啟
mode = 'r+', encoding引數寫該檔案的編碼方式 (如GKB)
f = open('隨便寫寫.txt','r+',encoding='gbk')
data = f.read()
print(data)
f.write('\n一二三四,哈哈')
f.close()
這種是常用的方式,類似於追加,先讀後寫,之前的文字不會被刪掉。
關於寫的
#以只寫方式開啟
mode引數為’w',encoding為寫入文章要編碼的方式(如GKB)
f = open(
'隨便寫寫.txt','w',encoding = 'gbk'
)
f.write('哈哈哈哈哈哈')
f.close()
#以只寫入二進位制方式開啟
mode引數為‘wb’,encoding則不用寫,因為寫的直接就是二進位制嘛
#以寫讀的方式
mode引數為‘w+',encoding為寫入文章要編碼的方式(如GKB),先寫再讀
但是需要注意,所有以寫開始的任務,都是直接清空原內容,再寫新內容,所以需要謹慎使用’寫‘方式,要確定要新健檔案才使用 w。
關於改的
#把內容加到檔案尾部
mode引數為’a',encoding為寫入文章要編碼的方式(如GKB)
f = open('隨便寫寫.txt','a',encoding='gbk')
f.write('\n又來一行,哈哈')
f.close()
#把內容加到檔案尾部以二進位制的方式
mode引數為’ab',encoding則不用寫
迴圈檔案
#一句一句迴圈檔案
f = open('隨便寫寫.txt','r',encoding='gbk')
for line in f:
print(line)
f.close()
匯出結果:
除了文章內容本身的\n轉行符。print完一行會自帶轉行
修改檔案:
使用append方式,從檔案的最後寫入內容
將游標移到想改的地方,然後再寫入內容。但這種方式,會覆蓋後面的資料不推薦。
邊讀邊改的幾種方式:
1. 把檔案全部讀到記憶體中,在記憶體中一句句改,刪,最後再存。但這種方式,會 浪費資源,如word,vim。這樣會佔記憶體。
2. 把檔案一句句讀到讀到記憶體中,在記憶體改,刪,再一句句存到硬碟中,形成一個修改的新檔案,但是這樣會佔 硬碟。
其他重要語法:
#寫入
f.write("),僅在只寫,讀寫,寫讀的狀態下可以使用
#讀取到記憶體變數
f.read(),僅在只讀,讀寫,寫讀狀態下可以使用,引數可以是size,要讀取的字元數 。
#重新整理到硬碟,flush
f.flush()
#判斷是否可讀,readable
f.readable()
#只讀一行
f.readline()
#定位游標位置,seek
f.seek()
#返回游標座標,tell
f.tell()
#切字,truncate
f.truncate() 指定長度切,或者從某個位置開始切到尾巴
#檔名修改,os命令
os.rename(old_name,new_name),注意文件需要保持關閉的狀態