python全棧開發---文件處理
阿新 • • 發佈:2018-04-11
com lena name 強制 Python全棧 記得 光標位置 文件名 pytho
python文件處理
最近好多同學說不會文件的處理,在這裏總結一下文件處理的知識點。
一、打開文件,關閉文件
文件的操作采用open()的方法
file = open(filename,mode,encoding) #打開文件 file.close() #關閉文件
其中
filename: 要打開的文件路徑,mode: 打開文件的模式,encoding:打開文件的編碼格式(一般采用utf-8)
打開文件的模式:
註意:filename是文件的路徑,當你沒有路徑只寫了一個文件名的時候,默認是在當前文件夾下創建,當你使用絕對路徑的時候,記得轉譯路徑中的‘ \ ’
f = open(file=‘1.txt‘, mode=‘w‘, encoding=‘utf-8‘) #在當前文件夾下創建 #註意絕對路徑 f = open(file=‘C:\\Users\\Administrator\\Desktop\\1.txt‘, mode=‘w‘, encoding=‘utf-8‘)
二、常用的方法
# 讀文件 f = open(file=‘1.txt‘, mode=‘r‘,encoding=‘utf-8‘) data = f.read() print(data) f.close() # 循環遍歷文件 f = open(file=‘1.txt‘, mode=‘r‘) for line in f: print(line) # 寫文件 f = open(file=‘2.txt‘, mode=‘w‘, encoding=‘gbk‘) f.write(‘學習python.‘) f.close() # 追加模式 這個模式是在以存在的文件的末尾最後繼續寫入內容 f = open(file=‘2.txt‘, mode=‘a‘, encoding=‘gbk‘) f.write(‘學習java.‘) f.close() # 讀寫模式 f = open(file=‘2.txt‘, mode=‘r+‘, encoding=‘gbk‘) data = f.read()print(data) f.write(‘\n學習C.‘) f.close() # 寫讀模式 f = open(file=‘2.txt‘, mode=‘r+‘, encoding=‘gbk‘) f.write(‘\n新疆.‘) data = f.read() print(data) f.close()
# 其他功能 f = open(file=‘C:\\Users\\Administrator\\Desktop\\1.txt‘, mode=‘r+‘, encoding=‘gbk‘) f.fileno() # 返回文件句柄在內核的索引值,IO多路復用時用到 f.flush() # 把文件從內存buffer中強制刷新到硬盤 f.readable() # 判讀文件是否可讀 f.readline() # 只讀一行遇到\n \r截止 f.tell() # 返回當前光標位置 f.seek() # 移動光標到指定位置 f.seekable() # 判斷文件是否可進行seek操作 f.truncate() # 按指定長度截斷文件*指定長度的話,從開頭開始截斷, 不指定長度的話,從當前位置到尾部全部去掉 f.writable() # 判斷是否可寫
三、文件修改
下面寫個簡單方法實現文件的修改:
# 文件修改 improt os #這裏導入了os模塊去改文件名 f_name = ‘C:\\Users\\Administrator\\Desktop\\3.txt‘ f_new_name = ‘%s.new‘ % f_name old_str = ‘新疆‘ new_str = ‘北京bj‘ f = open(file=f_name, mode=‘r‘, encoding=‘gbk‘) f_new = open(file=f_new_name, mode=‘w‘, encoding=‘gbk‘) for line in f: if old_str in line: line = line.replace(old_str,new_str) f_new.write(line) os.rename(f_new_name, f_name)
四、使用with操作文件
用with語句來操作,這樣就不需要手動來關閉文件了。
# 用with語句打開,不需要在寫f.close() with open(‘1.txt‘,‘r‘,encoding=‘utf-8‘) as f: print(f.read())
初入博客園,寫的不好請多多指正,如發現問題,我會及時更正,共同進步。
python全棧開發---文件處理