python--I/O流

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: 區分換行符
在這裏插入圖片描述

open函數()

圖片來自菜鳥教程

分類

按照操作數據的類型:

字符流

讀取到的是字符串或者文本文檔

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)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章