分分鐘鐘學會Python - 第四章 文件操作
阿新 • • 發佈:2019-05-06
repl cnblogs key 進行 學會 讀取 只讀 ace lua
4.1 文件基本操作
obj = open(‘路徑‘,mode=‘模式‘,encoding=‘編碼‘)
obj.write() # 寫入
obj.read() # 讀取
obj.close() #關閉
4.2 打開模式
- r / w / a 【只讀只寫字符串】 *
- r+ / w+ / a+ 【可讀可寫字符串】
- rb / wb / ab 【只讀只寫二進制】 *
- r+b / w+b / a+b 【可讀可寫二進制】
4.3 操作
-
read() , 全部讀到內存
-
read(1)
-
1表示一個字符
obj = open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘) data = obj.read(1) # 1個字符 obj.close() print(data)
-
1表示一個字節
obj = open(‘a.txt‘,mode=‘rb‘) data = obj.read(3) # 1個字節 obj.close()
-
-
write(字符串)
obj = open(‘a.txt‘,mode=‘w‘,encoding=‘utf-8‘) obj.write(‘中午你‘) obj.close()
-
write(二進制)
obj = open(‘a.txt‘,mode=‘wb‘) # obj.write(‘中午你‘.encode(‘utf-8‘)) v = ‘中午你‘.encode(‘utf-8‘) obj.write(v) obj.close()
-
seek(光標字節位置),無論模式是否帶b,都是按照字節進行處理。
obj = open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘) obj.seek(3) # 跳轉到指定字節位置 data = obj.read() obj.close() print(data) obj = open(‘a.txt‘,mode=‘rb‘) obj.seek(3) # 跳轉到指定字節位置 data = obj.read() obj.close() print(data)
-
tell(), 獲取光標當前所在的字節位置
obj = open(‘a.txt‘,mode=‘rb‘) # obj.seek(3) # 跳轉到指定字節位置 obj.read() data = obj.tell() print(data) obj.close()
-
flush,強制將內存中的數據寫入到硬盤
v = open(‘a.txt‘,mode=‘a‘,encoding=‘utf-8‘) while True: val = input(‘請輸入:‘) v.write(val) v.flush() v.close()
4.4 關閉文件
文藝青年
v = open(‘a.txt‘,mode=‘a‘,encoding=‘utf-8‘)
v.close()
二逼
with open(‘a.txt‘,mode=‘a‘,encoding=‘utf-8‘) as v:
data = v.read()
# 縮進中的代碼執行完畢後,自動關閉文件
4.5 文件內容的修改
with open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘) as f1:
data = f1.read()
new_data = data.replace(‘飛灑‘,‘666‘)
with open(‘a.txt‘,mode=‘w‘,encoding=‘utf-8‘) as f1:
data = f1.write(new_data)
大文件修改
f1 = open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘)
f2 = open(‘b.txt‘,mode=‘w‘,encoding=‘utf-8‘)
for line in f1:
new_line = line.replace(‘阿斯‘,‘死啊‘)
f2.write(new_line)
f1.close()
f2.close()
with open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘) as f1, open(‘c.txt‘,mode=‘w‘,encoding=‘utf-8‘) as f2:
for line in f1:
new_line = line.replace(‘阿斯‘, ‘死啊‘)
f2.write(new_line)
分分鐘鐘學會Python - 第四章 文件操作