I/O流
I/O流即input/output
由於內存中的東西無法長期的保存,所以需要將內存中的東西存放到硬盤中,所以產生了I/O流
主要使用open()來進行
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file: 文件路徑(相對或者絕對路徑)。
mode: 可選,文件打開模式
encoding: 一般使用utf8
newline: 區分換行符
圖片來自菜鳥教程
分類
按照操作數據的類型:
字符流
讀取到的是字符串或者文本文檔
c=open("D:\\temp\\python\\1.txt","r",encoding="utf-8")#打開文件
print(c.read())#讀取文件
c.close()#關閉文件
字節流
讀取到的是字節
c=open("D:\\temp\\python\\a.png","rb")#打開文件
print(c.read())#讀取文件
c.close()#關閉文件
第一個b就表示字節
按照流的方向
輸入流
c=open("D:\\temp\\python\\1.txt","r",encoding="utf-8")#打開文件
print(c.read())#讀取文件
c.close()#關閉文件
輸出流
c=open("D:\\temp\\python\\a.txt","w")#創建文件
c.write("你好啊")#編輯文件
c.close()#關閉文件
with語句
由於使用open()結束後必須要關閉容易忘記,所以python提供了with來自動關閉
with open("D:\\temp\\python\\a.txt", "r") as f:
print(f.read())
print("結束了")
序列化,反序列化
所謂序列化就是將字符轉化爲字節
反序列化就是將字節轉化爲字符
import pickle
ls=[1,2,3,4]
a=pickle.dumps(ls)#將ls序列化爲a
print(a)
ts=pickle.loads(a)#將a反序列化爲ts
print(ts)