# 第二步:讀取文件內容 的四個方法 #1:方法1-讀取文件的所有內容[只適合讀取小的文件,否則費內存] str1=f.read() print(str1) # 2 方法2-讀取指定字符數 str2=f.read(10) print(str2) str3=f.read(2) print(str3) ''' 輸出: def proces sF 總結:文件不關閉的狀況下,讀完一次,指針在最後邊,繼續讀2個字符信息。 ''' # 3 方法3-每次讀取一行數據,包括‘\n’ # str4=f.readline() str4=f.readline(10) #表示讀取一行的10個字符 print(str4) # 4 方法4-讀取方式4 讀取全部行並返回列表 list7=f.readlines() list7=f.readlines(22) #每行讀取這麼多 print(list7)
# 第三步:關閉文件 f.close()
方法1:python
try: f1=open(path,'r',encoding='utf8',errors='ignore') print(f1.read()) except: print("文件讀取出錯!") finally: if f1: f1.close()
方法2:帶with的自動關閉文件的方式程序員
# 方法2 with 自動關閉文件 path=r'E:\[AAA]全棧學習python\day2\file1.txt' try: with open(path) as file_obj: content=file_obj.read() print(content) except: print("讀取失敗!")
# 文件寫入 # 第一步:打開文件 path=r"E:\[AAA]全棧學習python\day2\file2.txt" f=open(path,'w') # 第二步:寫文件 #1 這裏其實只是先寫入了緩衝區,可是還沒得奧文件中去,須要刷新 f.write("jiajia is a beautiful girl333 !") # 2 刷新緩衝區,就是當即寫入文件,不寫刷新就是關閉才能寫入文件 f.flush() # 第三步:關閉文件 f.close()
# 案例2:用帶with自動關閉文件且追加的方式寫入 with open(path,'a') as file_obj: file_obj.write("康忙北鼻是一個帥哥!")
# file_obj.flush() #這種方式是不須要刷新與關閉操做的。
案例3json
# 1 普通寫入一個文件信息 path=r'E:\[AAA]全棧學習python\day3\file1.txt' with open(path,'w') as f1: str="I love programming" str2="I also like write articles" f1.write(str) f1.write(str2) ''' 輸出: 發現兩個寫入的文件信息都在一行顯示了。 I love programmingI also like write articles 解決辦法: 在每一個str 中加上換行符便可! ''' # 2每添加一段信息 ,帶換行信息寫入如何作呢! path2=r'E:\[AAA]全棧學習python\day3\file2.txt' with open(path,'w') as f1: str="I love programming\n" str2="I also like write articles \n" f1.write(str) f1.write(str2) ''' 輸出 I love programming I also like write articles ''' # 3 附加到文件file2 with open(path2,'a') as file_obj: file_obj.write("i am the first one!\n") file_obj.write("I AM THE SECOND ONE!\n") ''' 輸出: i am the first one! I AM THE SECOND ONE! '''
# 存入和讀取二進制文件信息 path = r'E:\[AAA]全棧學習python\day3\file3.txt' with open(path,'wb') as f1: str_bytes='I am jiyongjia !'.encode('utf-8') f1.write(str_bytes) with open(path,'rb') as f2: str2=f2.read() print(str2) print(type(str2)) ''' 輸出、 b'I am jiyongjia !' <class 'bytes'> 咱們發現讀取的並非字符串,因此並很差處理 '''
# 讀取 with open(path,'rb') as f2: str2=f2.read() print(str2.decode('utf-8')) print(type(str2.decode('utf-8'))) ''' 輸出: I am jiyongjia ! <class 'str'> 這裏就是提取的字符串了; '''
import pickle #引入數據持久性模板 # 1--使用 pickle 方式寫入進去。 mylist = [1,2,3,4,5,6,"jiajia","我是雷鋒"] # 把這個list寫入文件4 path = r'E:\[AAA]全棧學習python\day3\file4.txt' f= open(path,'wb') #打開 pickle.dump(mylist,f) f.close() #關閉 # 讀取出來、 f2= open(path,'rb') #打開 templist=pickle.load(f2) print(templist) f2.close() #關閉 ''' 輸出: [1, 2, 3, 4, 5, 6, 'jiajia', '我是雷鋒'] '''
# 說明: # json 文件 很是有用,由於咱們每每須要在關閉程序前把程序所處理獲得的數據進行保存, # 在下一次打開程序的時候再加載這些數據,這就要用到json。並且 json 數據是一種通用格式, # 經過json 就能夠把數據打包分享給其餘語言的程序員使用了,便於跨平臺操做。 import json # 1 把列表存入到json 文件 即json.dump list1=[1,12,3,4,5,6,"嘉嘉","jiajai"] dict1={"1":"puyhon學習",'2':"Java學習"} path= r'E:\[AAA]全棧學習python\day3\jsonfile1.json' with open(path,'w') as json_file: json.dump(list1, json_file) # 2 把json文件中的內容取出 即json.load path= r'E:\[AAA]全棧學習python\day3\jsonfile1.json' with open(path) as f2: file=json.load(f2) print("welcome back! 提取內容是:",file)