今天學習了io流操作,所以總結一下,順便回顧下這一天學習的知識點。
照舊,我們廢話少說,直接進入我們的主主題——【io流操作】
首先先了解下io流的概念吧。什麼是io流呢?
io流(input output stream)
1、io流主要指計算機的輸入和輸出操作;
2、常見的io流操作,一般說的是【記憶體】與【磁碟】之間的輸入輸出。
3、io流操作一種常見的【持久化】操作。
說完了io的概念,來說說io流的分類。
一、根據資料流動方向(粘在記憶體的角度來說)
1、r——輸入流
2、w——輸出流
二、根據資料的型別
1、b——位元組流
2、t——字元流
那如何使用呢?這裡我們要用到open函式。
python操作io流通過open函式
open函式主要的目的是開啟乙個本地的檔案
open函式的使用中,有幾個引數我們要了解下
1、【file】——表示乙個檔案的具體路徑,或者要開啟的檔名稱
2、【mode】——表示乙個字串,通常預設為tr
"r"——read表示輸入流
"w"——write表示輸出流
「t"——表示字元流 #使用字元操作io流
"b"——表示位元組流 #使用位元組操作io流 (位元組流操作大資料的,不建議一次性讀取)
"a"——表示追加輸出
3、io流的使用
>>>f = open(path,"r") #path是路徑
>>>msg = f.read()
>>>f.close() #最後關閉io流,一定要關閉!
上面說了io流操作的使用,但是大家可能還是有些懵,所以再詳細說一下,幫助理解下。
>>>f = open(file,"r") #f物件就是python io物件
方法:>>>read(size=-1) #讀取
>>>readline() #讀取一行資料
>>>readlines() #讀取多行資料
>>>write(data) #寫入到檔案
>>>writelines() #將多個資料寫入
>>>flush #重新整理快取區
>>>encodind() #編碼
>>>colse() #關閉file物件,注意close自動的呼叫flush進行最後檔案的重新整理
>>>closed() #判斷流是否關閉
這裡也舉乙個小例子,上了截圖,看一下。
這裡還有一些要強調的,一定要注意!!!
io流如果不使用的話一定要關閉!不關閉的話會造成資源的占用。
還有就是拷貝資料時,為了避免因為目標過大而導致宕機,應使用read引數來控制每次拷貝資料的多少,也可以用迴圈來做。
接觸乙個東西,我們肯定要先了解它的概念,它是什麼東西?那什麼是物件序列化呢?
物件序列化:
將記憶體的乙個抽象概念/邏輯概念(物件)轉換成位元組或者字元資料的過程。
叮叮叮,它的用法來了!這裡我說兩個——pickle和json。
1、pickle(可以將物件轉換成位元組資料)
1、dump——將物件序列化稱為位元組資料,並且儲存到file中
2、dumps——將資料序列化成為位元組資料
3、load——將乙個file物件反序列化
4、loads——將乙個位元組資料反序列化為物件
2、json(可以將物件轉換為字元資料)
1、dump——將物件序列化稱為字元資料,並且儲存到file中
2、dumps——將資料序列化成為字元資料
3、load——將乙個file物件反序列化
4、loads——將乙個字元資料反序列化為物件
對的pickle和json的用法是一樣的,要注意的json這個模組一般用來序列化字典物件,或者轉換json資料,但是其它物件也是可以的。
那我們今天的分享就到這裡,明天見?
大家加油!奧里給!
IO流操作規律
流操作的基本規律 最痛苦的就是流物件有很多,不知道用哪乙個。通過兩個明確來完成。1 明確源和目的。源 輸入流。inputstream reader 目的 輸出流 outputstream writer 2 操作的資料是否是純文字 是 字元流 不是 位元組流 3 當體系確定後,在明確需要使用哪個具體物...
IO流操作規
inputstream in system.in outputstream out system.out 4,明確額外功能?需要轉換,因為都是位元組流,但是操作的卻是文字資料。所以使用字元流操作起來更為便捷。inputstreamreader isr new inputstreamreader sy...
IO 流操作規律
流的操作規律 1.明確源和目的 源 inputsream reader 目的 outputstream writer 2.明確資料是否是純文字資料 源 是純文字 reader 否 inputsream 目的 是純文字 writer 否 outputstream 3.明確具體的裝置 源裝置 硬碟 fi...