Python學習 IO流操作

2021-10-23 01:52:49 字數 2356 閱讀 8408

今天學習了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...