語法 :python
f=open("文件",mode="模式",encoding="編碼")安全
注意 : 使用原生字符能夠解決\的問題,在"文件"前加r)網絡
# 不使用r時 f=open("D:\\Git\\Git存儲\\學習.txt",mode="r",encoding="UTF-8") # \\用來和python中的一些關鍵字作區分,不用\\表示可能會出錯 --------------------------------- # 使用r時 f=open(r"D:\Git\Git存儲\學習.txt",mode="r",encoding="UTF-8") # 此時的r是repr的簡稱,repr做用是保持原始狀態消除關鍵字功能.
r w a 操做的都是文本app
讀 : r (讀後光標會移動到最後)學習
寫 : w a (w時沒有文件建立文件,有文件分兩步,先清空在寫入)編碼
r+(讀寫),w+(寫讀),a+(追加寫讀)操作系統
rd r+d wb w+bab 操做非文本文件code
讀取本地非文本文件時,讀方式和操做讀文本方式同樣,只須要注意文件類型而且操做方式改爲rd便可ip
f = open("1.jpg",mode="rb") print(f.read()) # read() 所有讀取 print(f.read(3)) # 字節
下載並保存網絡文件時,須要調用import requests,實例以下內存
import requests ret=requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png") f = open("2.jpg",mode="wb") f.write(ret.content) f.close()
f.tell() # 查看光標所在的字節位置,會有返回值,返回值就是當前光標的位置
f.seek(偏移量,位置) # 移動光標字節位置
偏移量 : 按照字節來算,與所用的文件編碼有關.
位置 : 0表明開頭位置,1表明當前位置,2表明末尾位置
seek(0,0) # 文件開始位置 seek(0,1) # 光標的當前位置 seek(0,2) # 文件末尾位置 seek(3) # 按照字節調節,使用utf-8漢字是3,gbk漢字是2
絕對路徑 : 從磁盤的跟處查找
相對路徑 : 相對於當前文件進行查找,../表明上一級,查看當前工做路徑調用 import os
import os print(os.getcwd()) # 查看當前工做路徑
運用for迭代方式直接對f進行迭代讀取,不會由於文件過大,撐爆內存.
f=open("文件",mode="模式",encoding="編碼") for i in f:
語法 :
with open("文件路徑1",mode="操做方式",encoding="編碼方式") as f1, open("文件路徑2",mode="操做方式",encoding="編碼方式") as f2 :
lis=[] num=1 with open("a1",mode="r",encoding="utf-8") as f: for r in f: # 注意縮進 dic = {} lis1=r.strip().split(" ") if num==1: lis2=lis1.copy() else: for i in range(len(lis2)): dic[lis2[i]]=lis1[i] lis.append(dic) num+=1 print(lis)
做用 :