python基礎之檔案操作基礎
阿新 • • 發佈:2018-11-25
Python基礎之檔案操作
1、檔案的開啟方式
讀檔案的方式有四種:
r:只讀
rb:二進位制讀取
r+:讀寫,先讀在寫,在檔案游標處接著寫
r+b:二進位制讀取資料,英文讀取英文,中文轉為二進位制
# #檔案操作,開啟一個檔案,讀取檔案內容,返回檔案內容為字串 f = open('info', mode='r', encoding='utf-8') content = f.read() print(content, type(content)) f.close() # #二進位制讀取 f = open('info', mode='rb') content = f.read() print(content, type(content)) f.close() #讀寫,先讀出內容,再在結尾處寫檔案 f = open('info',mode='r+',encoding='utf-8') print(f.read()) f.write('\n大猛,小孟') f.close() #中文轉為二進位制的資料,英文字母不轉,返回 f = open('info', mode='r+b') print(f.read()) f.write('大猛,小孟'.encode('utf-8')) f.close()
寫檔案的方式也有四種:
w ,wb:區別不大
w+ :寫完之後重置游標才能讀取,否則游標在最後,讀取不到內容
w+b:寫的內容需要
f = open('info',mode='w',encoding='utf-8') f.write('附近看到類似糾紛') f.close() #wb f = open('log',mode='wb') f.write('附近看到類似糾紛'.encode('utf-8')) f.close() # w+ w+b寫的內容需要加二進位制形式 f = open('info',mode='w+b') f.write(b'aaa') #f.write('aaa'.encode('utf8'))
f.seek(0) print(f.read()) f.close()
追加方式:
f = open('info',mode='a',encoding='utf8') f.write('佳琪') f.close()
注意:讀出來的都是字串即是str型別,
2.檔案的其他操作
#read,readline,readlines區別 #一次性讀完,之後for迴圈相當於對所有內容(內容為str)迴圈遍歷 f = open('info',mode='r',encoding='utf8') #['a', 'a', 'a', '佳', '琪', '佳', '琪', '', '1', '2', '3', '3', '3', '3', '3', '3', '3', '3', '', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2'] read_L= [] for line in f.read(): read_L.append(line.strip()) f.close() print(len(read_L)) print(read_L) #只讀一行,之後for迴圈相當於對所有內容(內容為str)迴圈遍歷 f = open('info',mode='r',encoding='utf8') #['a', 'a', 'a', '佳', '琪', '佳', '琪', ''] readline_L= [] for line in f.readline(): readline_L.append(line.strip()) f.close() print(len(readline_L)) print(readline_L) #每行讀完當一個列表 f = open('info',mode='r',encoding='utf8') #['aaa佳琪佳琪', '1233333333', '1111111111', '2222222222'] readlines_L= [] for line in f.readlines(): readlines_L.append(line.strip()) f.close() print(len(readlines_L)) print(readlines_L)
修改檔案
with open('info',encoding='utf-8') as f,open('info.bak','w',encoding='utf-8') as f2: for line in f: if 'aaa' in line: #班主任:星兒 line = line.replace('aaa','******') #寫檔案 f2.write(line) #小護士:金老闆 import os os.remove('info') #刪除檔案 os.rename('info.bak','info') #重新命名檔案
注意:檔案使用過程中要習慣使用with open()開啟檔案,這樣會自動關閉檔案,而不用輸入f.close(),且只在Python3才有with open()操作,py2不支援這個操作