f = open("文件名或路徑", mode="模式", encoding="UTF-8")
s = f.read()
f.close
with open("文件名", mode="模式", encoding="utf-8") as f:#比較友好,能夠不關閉文件,它自動刷新和關閉文件
絕對路徑:從磁盤的根目錄尋找 或者 從互聯網上尋找一個路徑python
相對路徑:(用的多). 相對於當前程序所在的文件夾 ../上一層文件夾app
f = open("哈哈哈哈哈", mode="r", encoding="UTF-8") s = f.read() print(s) f.close() # 若是沒有這句話, 你在下面的程序中若是刪除這個文件. 就會報錯
for line in f: # 文件是一個可迭代對象 print(line.strip()) # 一行一行的處理數據 lst = f.readlines() print(lst) f.close()
#帶w的. 只要你操做了. 就會清空源文件 #若是文件不存在. 會自動建立文件 f = open("阿西吧", mode="w", encoding="utf-8") f.write("呀! 養狗了沒有?\n") f.write("養狗四米大") f.flush() f.close()
# 寫的時候. 換行須要手動控制換行 \n f = open("阿西吧", mode="a", encoding="utf-8") f.write("四米大?") f.write("四米大") f.flush() f.close()
#r+ 先讀後寫 f = open("阿西吧", mode="r+", encoding="utf-8") s = f.read(3) # 讀取三個字符 print(s) f.write("不養了. 送人") # 在末尾寫 f.write("葫蘆娃") s = f.read() print(s) s = f.read(2) print(s) f.write("還有何雲偉") f.close()
# w+,先寫後讀,不多用. 由於會清空文件中的內容 f = open("阿西吧", mode="w+", encoding="utf-8") f.write("張雲雷也要退出德雲社") # 寫完以後光標在最後. 讀取是沒有內容的 f.seek(0) # 移動光標, 移動到開頭 s = f.read() print("讀取的內容是",s) f.flush() f.close()
f = open("阿西吧", mode="a+", encoding="utf-8") f.write("我要加入德雲社")#清空源文件內容,寫入"我要加入德雲社" f.seek(0) #移動光標到開頭,緣由:寫入完畢,光標停留在寫完最後的位置 s = f.read() #不移動光標什麼都讀不出來 print(s) #我要加入德雲社 f.flush() f.close()
rb, wb, ab, bytes#若是處理的是非文本文件, mode裏若是有b. encoding就不能給了 f = open("c:/pdd.jpg", mode="rb") # 這裏不能寫encoding e = open("e:/pdd.jpg", mode="wb") for line in f: # 從c盤讀取 line你是不知道讀取了多少數據的 e.write(line) # 寫入到e盤 f.close() e.flush() e.close()
seek(偏移量, 位置)函數
光標(seek)*spa
seek(0) 光標移動到開頭日誌
seek(0,2) 光標移動到結尾code
seek(0,1)當前光標對象
tell() 告訴光標的位置blog
1.從文件開頭截斷到光標位置ip
2.若是給參數. 從頭截斷到參數位置utf-8
1. 引入os模塊
2. 打開目標文件, r
3. 打開文件副本, w
4. 從r中讀取內容進行修改. 寫入到副本中
5. 刪除源文件
6. 重命名副本
#將原文件中的'alex'換成'很屌' import os #引入模塊 # with open('a1.txt',mode='r',encoding='utf-8') as f, \ # open('a1副本.txt',mode='w',encoding='utf-8') as f1: # for line in f: # line = line.replace("alex", "很屌") # f1.write(line) # os.remove("a1.txt") #刪除原文本 # os.rename("a1副本.txt","a1.txt") #將新文本重命名爲原文件名
#示例,日誌的終極處理方法 import os # 引入模塊 lst = [] with open("2018-08-06.log", mode="r", encoding="utf-8") as f: #這種寫法比較友好,不用打close() first = f.readline().strip().split(",") #去除空白,分割','造成列表 for line in f: #循環文件,循環的結果是每一行 #dic = {} # 每一行一個字典 # 1,alex,10086,特斯拉 ls = line.strip().split(",") #每一行都去除空格,以','分割,造成列表 for i in range(len(first)): #無論源文件如何增長內容,這裏每次均可以循環到,能夠添加到字典中 dic[first[i]] = ls[i] #比原來更方便 lst.append(dic) print(lst)