起初data.txt文件是這樣的 # 一直打開文件但卻不關閉文件會導致記憶體溢出 # 在python,使用open函數, # 可以打開一個已經存在的文件,或者創建一個新文件, # 語法如下: open(name, mode) # name: 是要打開的目標文件名的字元串(可以包含文件所在的具體路徑)。 ...
起初data.txt文件是這樣的
# 一直打開文件但卻不關閉文件會導致記憶體溢出 # 在python,使用open函數, # 可以打開一個已經存在的文件,或者創建一個新文件, # 語法如下: open(name, mode) # name: 是要打開的目標文件名的字元串(可以包含文件所在的具體路徑)。 # mode: 設置打開文件的模式(訪問模式):只讀、寫入、追加等。 # mode r w a # r 只讀不支持寫入 # 使用f.write()會報錯 # 如果讀取的文件不存在就報錯 # read(num) 讀取數據, # num不寫預設讀取全部數據 num寫了就讀取指定大小的位元組 f = open('data.txt', 'r') print(f.read()) # 讀取全部數據 f.close()
輸出:
# 註意:如果執行了一次 read 方法,讀取了所有內容, # 那麼再次調用 read 方法,是不能讀取到任何的內容, # 因為第一次讀取之後,文件指針移動到了文件末尾, # 再次調用不會讀取到任何的內容。 # readlines() # 將文件裡面的數據按行保存到列表中 # readline() # 運行一次讀取一行 f = open('data.txt', 'r') print(f.readlines()) data = f.readlines() # data = f.readlines()[1] # 讀取第二行 print(data) # 因為運行完上一個readlines()游標在文件末尾 f.close()
起初是這樣的:
# w 覆蓋寫 # 如果該文件存在,則打開文件並從開頭開始編輯,即原有內容會被刪除。 # 如果該文件不存在,創建新文件。 # writelines() 將列表裡的數據保存到文件中 data = ['靜夜思666\n', '唐66代:李白\n', '床前明月光,疑是地上霜。\n', '舉頭望明月,低頭思故鄉。'] f = open('data1.txt', 'w') f.writelines(data) f.close()
運行後data1.txt變為了:
緊接著運行
f = open('data1.txt', 'w') f.write('zbc') f.close()
因為,訪問模式為w時,游標每次都從文件開頭開始,即原有內容會被刪除
緊接著運行了兩次下麵這幾行代碼
# a 追加數據 f = open('data1.txt', 'a') f.write('\nzbc\n') # 註意換行符 f.close()
運行下麵代碼
# r+ 讀寫 w+ a+ f = open('data.txt', 'r+') f.write('我') # 會覆蓋第一行的相應字元 漢字占兩個位元組 f.close()
運行後:
起始時:
運行代碼:
# 文件與文件夾的操作 # 複製 刪除 重命名 移動 import os # 導入模塊 # 重命名 # os.rename(文件(夾)名稱, 新的名稱) # 重命名 # 若原文件不存在,則報錯 os.rename('abc.txt', 'data1.txt')
運行後:
運行前:
運行代碼:
os.rename(r'D:\xiangxuexue\\01\\day15', r'D:\xiangxuexue\\01\\day-15') # 要註意那個r!!!
運行後:
運行前:
運行代碼:
os.remove(r'data1.txt') # 刪除文件
運行後:
運行前:
運行代碼:
os.mkdir('data') # 創建一個文件夾
運行後:
運行前:
運行代碼:
os.makedirs('data\\data2') # 創建整個路徑的文件夾
運行後:
緊接著運行代碼:
os.rmdir('data\\data2') # 只會刪除最裡面的一個文件夾
運行後:
運行代碼:
# # 查找 data = os.listdir(r'D:\xiangxuexue\01\day16') # 返回一個列表 文件夾裡面的文件 print(data) # ['data', 'data.txt', '__init__.py', '文件操作.py'] print() data = os.walk(r'D:\xiangxuexue\01\day16') for i in data: print(i) # 看路徑 # 獲取當前路徑 print() print(os.getcwd()) # D:\xiangxuexue\01\day16 # 判斷文件是否存在 if os.path.exists('data.txt'): print('yes')
輸出:
運行前:
運行代碼:
import shutil shutil.copy('data.txt', r'D:\xiangxuexue\01\useless') # 只複製 shutil.copy('data.txt', r'D:\xiangxuexue\01\useless\data2.txt') # 複製加重命名
運行後:
今日練習;
# 今日練習 ''' 1、 創建一個data.txt的文件 2、用文件的寫的方法往裡面寫上一首詩,並輸出裡面的全部內容 靜夜思 唐代:李白 床前明月光,疑是地上霜。 舉頭望明月,低頭思故鄉。 3、刪除最後一行的詩句後並輸出刪除後的內容 ''' print('今日練習') f = open('data.txt', 'w') # 創建data.txt文件 # poem = ['靜夜思\n', '唐代:李白\n', '床前明月光,疑是地上霜。\n', '舉頭望明月,低頭思故鄉。'] # f.writelines(poem) # 參數是個列表!而write()參數是個字元串 f.write('靜夜思\n唐代:李白\n床前明月光,疑是地上霜。\n舉頭望明月,低頭思故鄉。') f.close() f = open('data.txt', 'r') data = f.readlines() # 以每行為一個元素,以列表形式存儲! del data[3] # 刪除最後一行 poem_new = data print(data) f.close()