文件操作
f1 = open(r'd:\王凱.txt', encoding='utf-8', mode='r')
content = f1.read()
print(content, type(content))
f1.close()
f1 文件句柄 f1,fh,file_handle,f....
f1.close()
打開文件產生文件句柄。
對文件句柄進行相應的操作(讀,寫,追加,讀寫....)。
關閉文件句柄。
1.1讀:
r # 第一種 read() 全部讀取 f1 = open('alex與sb', encoding='utf-8') content = f1.read() print(content, type(content)) f1.close()
先來一個圖片比如起名:有點大.jpg f1 = open('有點大.jpg', mode='rb') content = f1.read() print(content) f2 = open('不大呀.jpg',mode='wb') f2.write(content) f1.close() f2.close()
log3內容為 f1 = open('log3', encoding='utf-8', mode='r+') content = f1.read() print(content) f1.write('666') f1.write('來了') print(f1.read()) f1.close()
# 1,沒有文件創建文件寫入內容。
# 2,有文件先清空后寫入。 f1 = open('log1', encoding='utf-8',mode='w') f1.write('又好了....') f1.close()
1.3 a 追加 # 1,沒有文件創建文件寫入內容。
# 2,有文件直接在后面追加。 f1 = open('log3', encoding='utf-8',mode='a') f1.write('\n喇叭壞了 fuck') f1.close()
# writable() 是否可寫
f1 = open('log1', encoding='utf-8',mode='w') f1.write('又好了....') if f1.readable():print(f1.read()) # print(f1.readable()) f1.close() # tell() 告訴你光標的位置(按照字節)
# seek() 調整光標的位置(按照字節) f1 = open('alex與sb', encoding='utf-8') content = f1.read(3) #3是指讀了3個字符 如果是()是指的讀的全部字符 print(f1.tell()) #讀了3個字符,也就是 太白金 三個字,那就是9個字節,所以結果是9 f1.close()f1 = open('alex與sb', encoding='utf-8') f1.seek(12) #12是指按照12個字節計算的話,是4個文字,所以 太白金星 4個字就沒有了 content = f1.read() print(content) f1.close()
2,以寫的模式打開一個新文件
3,對原文件的內容進行修改,形成新內容寫入新文件
4,刪除原文件
5,將新文件重命名為原文件。
練習題:
import os #調用系統模塊 with open('alex美文', encoding='utf-8') as f1, open('alex美文.bak',encoding='utf-8',mode='w') as f2: #1,以讀的模式打開原文件alex美文 2,以寫的模式打開一個新文件alex美文.bakold_content = f1.read() new_contenet = old_content.replace('SB', 'alex') #3,對原文件的內容進行修改,形成新內容寫入新文件 f2.write(new_contenet) os.remove('alex美文') #4,刪除原文件 os.rename('alex美文.bak','alex美文') # 5,將新文件重命名為原文件。#但是上面的這個是把文件全讀下面,不太好,我們推薦使用下面的for循環方式。import os #調用系統模塊 with open('alex美文', encoding='utf-8') as f1, open('alex美文.bak',encoding='utf-8',mode='w') as f2: #1,以讀的模式打開原文件alex美文 2,以寫的模式打開一個新文件alex美文.bakfor line in f1: #for循環new_line = line.replace('alex','SB') #把alex替換成SB #3,對原文件的內容進行修改,形成新內容寫入新文件 f2.write(new_line) os.remove('alex美文') #4,刪除原文件 os.rename('alex美文.bak','alex美文') # 5,將新文件重命名為原文件。
操作過程:
open()內置函數,操作文件f1 文件句柄 f1,fh,file_handle,f....
f1.close()
打開文件產生文件句柄。
對文件句柄進行相應的操作(讀,寫,追加,讀寫....)。
關閉文件句柄。
1.1讀:
r # 第一種 read() 全部讀取 f1 = open('alex與sb', encoding='utf-8') content = f1.read() print(content, type(content)) f1.close()
?
# 第二種 read(n) r:模式 按照 字符去讀取 f1 = open('alex與sb', encoding='utf-8') content = f1.read(3) print(content) f1.close()?
# 第三種 readline() 按行讀取 f1 = open('alex與sb', encoding='utf-8') print(f1.readline().strip()) print(f1.readline().strip()) print(f1.readline().strip()) print(f1.readline().strip()) f1.close() print(666) # 第四種 readlines() 返回一個列表,列表中的每個元素是原文件的一行 f1 = open('alex與sb', encoding='utf-8') content = f1.readlines() print(content, type(content)) f1.close() # 第五種 for循環 *** 推薦使用 f1 = open('alex與sb', encoding='utf-8') for line in f1:print(line.strip()) f1.close()?
rb #專門用來讀圖片或者視頻先來一個圖片比如起名:有點大.jpg f1 = open('有點大.jpg', mode='rb') content = f1.read() print(content) f2 = open('不大呀.jpg',mode='wb') f2.write(content) f1.close() f2.close()
執行完之后:出來了
r+ 先讀后寫(后追加)log3內容為 f1 = open('log3', encoding='utf-8', mode='r+') content = f1.read() print(content) f1.write('666') f1.write('來了') print(f1.read()) f1.close()
執行完查看
1.2 寫
w# 1,沒有文件創建文件寫入內容。
# 2,有文件先清空后寫入。 f1 = open('log1', encoding='utf-8',mode='w') f1.write('又好了....') f1.close()
查看log1
# wb 上面有代碼1.3 a 追加 # 1,沒有文件創建文件寫入內容。
# 2,有文件直接在后面追加。 f1 = open('log3', encoding='utf-8',mode='a') f1.write('\n喇叭壞了 fuck') f1.close()
?
二、文件操作的常用方法 # readable() 是否可讀# writable() 是否可寫
f1 = open('log1', encoding='utf-8',mode='w') f1.write('又好了....') if f1.readable():print(f1.read()) # print(f1.readable()) f1.close() # tell() 告訴你光標的位置(按照字節)
# seek() 調整光標的位置(按照字節) f1 = open('alex與sb', encoding='utf-8') content = f1.read(3) #3是指讀了3個字符 如果是()是指的讀的全部字符 print(f1.tell()) #讀了3個字符,也就是 太白金 三個字,那就是9個字節,所以結果是9 f1.close()f1 = open('alex與sb', encoding='utf-8') f1.seek(12) #12是指按照12個字節計算的話,是4個文字,所以 太白金星 4個字就沒有了 content = f1.read() print(content) f1.close()
修改一個文件的過程:
1,以讀的模式打開原文件2,以寫的模式打開一個新文件
3,對原文件的內容進行修改,形成新內容寫入新文件
4,刪除原文件
5,將新文件重命名為原文件。
練習題:
2,有如下文件:
-------
alex是老男孩python發起人,創建人。
alex其實是人妖。
誰說alex是sb?
你們真逗,alex再牛逼,也掩飾不住資深屌絲的氣質。
----------
將文件中所有的alex都替換成大寫的SB。
?
# read() 占用內存import os #調用系統模塊 with open('alex美文', encoding='utf-8') as f1, open('alex美文.bak',encoding='utf-8',mode='w') as f2: #1,以讀的模式打開原文件alex美文 2,以寫的模式打開一個新文件alex美文.bakold_content = f1.read() new_contenet = old_content.replace('SB', 'alex') #3,對原文件的內容進行修改,形成新內容寫入新文件 f2.write(new_contenet) os.remove('alex美文') #4,刪除原文件 os.rename('alex美文.bak','alex美文') # 5,將新文件重命名為原文件。#但是上面的這個是把文件全讀下面,不太好,我們推薦使用下面的for循環方式。import os #調用系統模塊 with open('alex美文', encoding='utf-8') as f1, open('alex美文.bak',encoding='utf-8',mode='w') as f2: #1,以讀的模式打開原文件alex美文 2,以寫的模式打開一個新文件alex美文.bakfor line in f1: #for循環new_line = line.replace('alex','SB') #把alex替換成SB #3,對原文件的內容進行修改,形成新內容寫入新文件 f2.write(new_line) os.remove('alex美文') #4,刪除原文件 os.rename('alex美文.bak','alex美文') # 5,將新文件重命名為原文件。
?
轉載于:https://www.cnblogs.com/wangkaiok/p/9872515.html
總結
- 上一篇: 所谓打破信息不对称,其实是一种幻觉。
- 下一篇: Lin协议开发流程