1. 程式人生 > 其它 >練習19(檔案操作)

練習19(檔案操作)

技術標籤:Pythonpython

練習19

# f = open('d:\聯絡方式.txt',encoding='utf-8',mode='r')
# content = f.read()
# print(content)
# f.close()
'''
f, 變數f_obj,f_handler,f_h,fh,檔案控制代碼。
open() python的內建函式(內部呼叫的是windows的系統命令),
1,開啟檔案,產生檔案控制代碼。
2,對檔案控制代碼進行操作。
3,關閉檔案控制代碼。
'''

# 讀
# r 對於r模式 mode可以預設不寫
# f = open('d:\護士主婦空姐私密聯絡方式.txt',encoding='GB2312',mode='r')
# content = f.read() # print(content) # f.close() # 1,全部讀取 # f = open('檔案操作1',encoding='utf-8',mode='r') # content = f.read() # # print(content) # f.close() # 2,read(n) # f = open('檔案操作1',encoding='utf-8',mode='r') # content = f.read(10) # r 模式,按照字元讀取。 # print(content) # f.close() # 3, 按行讀取 # f = open('檔案操作1',encoding='utf-8',mode='r')
# print(f.readline()) # # print(f.readline()) # # print(f.readline()) # # print(f.readline()) # # print(f.readline()) # # print(f.readline()) # # f.close() # 4,按行讀取,返回一個list # f = open('檔案操作1',encoding='utf-8',mode='r') # content = f.readlines() # print(content) # f.close() # rb # 5,for 迴圈。 # f = open('檔案操作1',encoding='utf-8',mode='r')
# for line in f: # print(line.strip()) # f.close() # rb 檔案操作中凡是 帶b字母,都是與非文字類檔案相關的。 # f = open('美女1.jpg',mode='rb') # content = f.read() # print(content) # f.close() # f = open('檔案操作1',mode='rb') # content = f.read(9) # rb 模式 n 按照位元組讀取。 # print(content) # f.close() # r+ 讀寫:先讀後追加。 # f = open('檔案操作1',encoding='utf-8',mode='r+') # content = f.read() # print(content) # f.write('666') # f.close() # f = open('檔案操作1',encoding='utf-8',mode='r+') # content = f.read(3) # print(content) # f.write('666') # f.close() # 不讀直接寫會怎樣:直接從開始覆蓋 # f = open('檔案操作1',encoding='utf-8',mode='r+') # f.write('深圳你好') # f.close() # r+b # 寫 # w # 沒有檔案,建立檔案也要寫。 # 有檔案,先清空,後寫入。 # f = open('檔案操作2', encoding='utf-8',mode='w') # f.write('深圳市南山區,福田區,羅湖區。。。') # f.close() # wb # f = open('美女1.jpg',mode='rb') # content = f.read() # print(content) # # f1 = open(' 美女2.jpg',mode='wb') # f1.write(content) # f.close() # f1.close() # w+: 寫讀 # f = open('檔案操作2', encoding='utf-8',mode='w+') # f.write('深圳市南山區,福田區,羅湖區。。。') # f.seek(3) # 調整游標 # content = f.read() # print(content) # f.close() # 追加 # a # 沒有檔案,建立檔案也要寫。 # 有檔案,直接在檔案的最後面追加。 # f = open('檔案操作3', encoding='utf-8',mode='a') # f.write('\n南方水土好。。。') # f.close() # ab a+ a+b # 其他方法:readale ,writable,seek # f = open('檔案操作1',encoding='utf-8') # if f.writable(): # content = f.read() # print(content) # f.close() # seek 調整游標到開始,seek(0) 調整游標到結尾seek(0,2) ***** # f = open('檔案操作1',encoding='utf-8') # f.seek(6) # 按照位元組去移動游標 # content = f.read() # print(content) # f.close() # f = open('檔案操作1',mode='rb') # print(f.read()) # f.seek(6) # 按照位元組去移動游標 # content = f.read() # print(content) # f.close() # tell 告知游標的位置 ***** # f = open('檔案操作1',encoding='utf-8') # f.seek(0,2) # 按照位元組去移動游標 # print(f.tell()) # f.close() # truncate 要在writable模式下進行擷取。 # r+ a+ ..不能在w模式下使用,對原檔案進行擷取 # f = open('檔案操作1',encoding='utf-8',mode='r+') # print(f.truncate(6)) # f.close() # 1,主動關閉檔案控制代碼 # with open('檔案操作2',encoding='utf-8') as f1: # print(f1.read()) # 2,開啟多個檔案控制代碼。 # with open('檔案操作2',encoding='utf-8') as f1,\ # open('檔案操作3',encoding='utf-8',mode='w') as f2: # print(f1.read()) # f2.write('666666') # 檔案的改的操作 # 1,以讀的模式開啟原檔案,產生一個檔案控制代碼f1. # 2,以寫的模式建立一個新檔案,產生一個檔案控制代碼f2. # 3,讀取原檔案內容,進行修改,並將修改後的寫入新檔案。 # 4,將原檔案刪除。 # 5,將新檔案重新命名成原檔案。 # low版 import os with open('alex的深度剖析', encoding='utf-8') as f1,\ open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2: old_content = f1.read() new_content = old_content.replace('alex','SB') f2.write(new_content) os.remove('alex的深度剖析') os.rename('alex的深度解析.bak', 'alex的深度剖析') # import os with open('alex的深度剖析', encoding='utf-8') as f1,\ open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2: for line in f1: new_line = line.replace('SB','alex') f2.write(new_line) os.remove('alex的深度剖析') os.rename('alex的深度解析.bak', 'alex的深度剖析')