Python第十六天筆記(IO流 物件序列化)

2021-10-10 16:54:23 字數 2500 閱讀 7521

python第十六天筆記

io流(input output stream)

一、什麼是io流:輸入輸出流

【主要說的就是將資料讀入記憶體或者記憶體輸出的過程中使用的技術

常見的io流操作,一般說的是【記憶體】與【磁碟】之間的輸入輸出。】

記憶體(memory):儲存資料

馮諾依曼,計算機五大組成部件:輸入裝置,輸出裝置,儲存裝置,控制器,運算器

io流:記憶體資料的流入和流出

資料持久化:將記憶體的資料永久儲存

方法1:io流

方法2:資料庫(還是一種io流操作)

網路就是一種io流

為什麼使用io流

進行資料的持久化或傳輸

二、io流的作用:

持久化資料,保證資料不在丟失!

三、io的分類

python如何操作io流:

全域性函式open開啟乙個io流操作

open函式主要的目的是開啟乙個本地的檔案

open函式的使用中,需要了解以下幾個引數:

mode中:

「r」——read表示輸入流

"w"——write表示輸出流

「t"——表示字元流 #使用字元操作io流

"b"——表示位元組流 #使用位元組操作io流 (位元組流操作大資料的,不建議一次性讀取)

"a"——表示追加輸出

io流的使用

>>>f = open(path,"r") #path是路徑

>>>msg = f.read( )

>>>f.close( ) #最後關閉io流,一定要關閉!

open——是乙個全域性函式

open(file[,mode = 「r」])

四、io讀寫檔案的步驟:

(1)io讀取檔案

(2)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引數來控制每次拷貝資料的多少,也可以用迴圈來做。

io流的分類

根據流的型別

字元流:

字串(文字型別)

位元組流:

01二進位制

需要大資料流的操作!!

根據流的方向

輸入流

輸出流物件序列化

1.什麼是物件序列化?

將記憶體的乙個抽象概念/邏輯概念(物件)轉換成位元組或者字元資料的過程。

2.這裡介紹兩個用法——pickle、json1、pickle模組(二進位制和物件之間的序列化)

1、dump——將物件序列化稱為位元組(二進位制)資料,並且儲存到file中

2、dumps——將資料序列化成為位元組資料

3、load——將乙個file物件反序列化

4、loads——將乙個位元組資料反序列化為物件

with語句塊python 每當開啟乙個io,最後一定要關閉資源

with open("a.txt", "r") as f:

# 操作io流,不用關閉

with語句塊開啟的io

with結束時自動呼叫close方法關閉資源

Python 第十六天

魔法方法總是被雙下劃線包圍 例如 init 注 魔法方法第乙個引數為cls 類方法 或者self 例項方法 其中 cls 代表乙個類名稱 self 代表乙個例項物件的名稱 基本方法 init self 構造器,當乙個例項被建立的時候呼叫的初始化方法 new cls 是在乙個物件例項化的時候所呼叫的第...

python第十六天

一 包 1 什麼是包?一系列模組的集合 2 有什麼用?包通過資料夾來管理一系列功能相近的模組 3 包重點?包中一定有乙個專門用來管理包中所有模組的檔案 init 4 什麼是包名?包名是存放一系列模組的資料夾名字 5 包名有什麼用 包名 包物件 存放的是管理模組的那個檔案的位址,指向其全域性命名空間。...

學習python 第十六天

流 i o 一 編碼 編碼明文 暗文 明文 暗文 解碼計算機只認識010101 ascii 0 127 ansi ascii加上拉丁文 gb2312 ascii加上7000多個漢字 前八位和後八位 127 gbk gb2312加上2萬多個漢字 前八位 127 unicode 國際通用 utf 8 推...