Python文件操作IO open 讀-取-寫

PythonIO文件操作,讀、取、寫

 

 

本篇內容 文件的操作。

文件的練習

文件的操作

讀取信息寫入信息、文件有那麼多的字,在什麼地方寫入、怎麼 控制它。

文件對象 ===  讀取 === 寫入

 

生成文件對象

Fileobject = open(filename,mode) py3 py2 通用

文件對象 = 打開(文件名稱,文件模式)

Fileobject = file(filename,mode)py2用的

 

文件對象 = 文件(文件名稱,文件模式)

對文件進行操作。

圖形界面打開文件過程,先找到文件 --雙擊打開。

程序打開文件工程,找到文件--確定是這個文件打開。

程序打開並不是一定能看見,通常是給程序員看或者用戶。

通過程序 給某一個文件建立起某一個聯繫,在這 叫做生成文件對象。

可以理解爲,你和文件建立起了聯繫,你要讀取還是寫入信息,還沒確定。

文件進行操作之前第一步就是生成一個文件對象

兩個方法。一個open 一個file

open方法

fileobject = open(filename,mode)  py2,py3 都可用

文件方法 = 打開(文件名,方法)

file方法

fileobject = file(filename,mode) py

文件方法 = 文件(文件名,方法)

要養成一個習慣,用兩個都有的  的open。這樣用2py也可以,3py也可以。減去後續不必要的麻煩。

 

示範 fileobject = open (filename,mode)

方法 =  確定文件在什麼地方,(在什麼路徑,用讀取還是寫入方式打開。)

blob.png第一種情況進入我創建的文件夾選項,進入的的ipython。可直接打開文件

blob.png

返回的提示表達:方式是 r 打開 編碼格式是CP936

此時獲得並不是文件的內容,只是一個文件獲得的一個句柄,或者理解爲對象。

 

第二張情況 因爲執行的文件環境是同一個目錄下,只需要執行文件的名字。

如果不是一個文件目錄,需要r文件 指定目錄 寫上完整路徑

blob.png

 

讀取文件

注意: 進行讀取文件,可以後面方法寫上'r' ,也可以不加 ,因爲程序默認的就是爲'r'的參數

基本文件操作過程

Read 語法

blob.png

選擇字節數的操作

blob.png

read列子

blob.png

講解含義

1 先生成一個對象。然後通過對象的方法。《某對象 = 方法》

2 選擇是對文件進行讀取信息,還是寫入信息。《f.read() = 對象 ,閱讀》,讀到信息

3 操作完畢後對象 文件關閉 ,主要是爲了釋放內存。《對象.close()》

 

文件操作方法 和對象

blob.png

可以組合使用,比如  r+ 就有讀取的作用、rb讀取一個二進制文件。

創建文件生成句柄

 

生成文件對象

blob.png

創建文件句柄,生成文件對象的時候,是讀是寫還是追加去寫。

 

基本上功能如下圖,唯一的區別還是有一點的,先了解下怎麼樣讀取和寫入,

然後在看它們的區別

blob.png

 

 

介紹 readline

之前用的read,它是讀取全部的內容,

但是有的時候,內容有很多行,每一次只想讀取一行,這個時候就該用到readine,逐行讀取,也可以指定字節

blob.png

Readline列子

blob.png每次執行的話會讀取一行。如果爲空的話,會顯示  \n

 

blob.png

每次執行readline命令內容就會讀取下一行,其實這個時候 指針就在起作用了,每次執行一次,指針調到下一行第一個字符。這就是readline過程

blob.png選擇一次讀多少字節,這裏爲一次5字節

沒有就顯示\n

 

freadlines列子

blob.png

readlines

可以直接讀取多行,然後返回一個列表。

形成一個列表。每一個元素就是一行,直接通過列表方式 獲取第幾行數據。

blob.png

 

小補充

blob.png 這個案例是不讓你產生錯覺,用 read 讀取後 指針會一直往下掃描。一直讀取全部,。 當指針到最後,你還想往下讀的話,是讀不出來數據的。

      要想在看上面數據,可以用一個變量做一個賦值,保存起來。什麼時候想看文件 信息,只要顯示 s變量值 就可以了。

最基礎的方法。其它方法也有,後面補充。

 

變量賦值案例

f 調用方法 保存到

變量c中。

blob.png以上介紹了IO文件在讀的時候,指針的作用

 

知道了怎麼讀,

下面要看下怎麼寫入數據

Write語法

blob.png

Write例子

blob.png

上圖解有、 w效果爲寫入和重建。

表達含義:

1. w 寫入權限 寫入,此時新建一個爲xq5txt文件。

2. write方法寫入,內容。一共爲14個字節

3.可以明確看出此時創建的文件只有寫,沒有讀的權限

4.f變量用 r 讀的方式

5.用讀的權限 完美讀取 新建的xq5.txt裏面的內容;       

 

Writeines語法

blob.png

Wwritelines例子:

blob.png

表達含義:

1.用寫的方式,w打開文件

2.writlines 列表寫入法

3.釋放文件

4.讀取文件

5.讀取得到 寫入的數據;

列表數據變成一行的數據

 

 

文件 對象 組合使用

注意下 rw 不能 組合使用

blob.png

所以w只可以寫入,如果想 有更新作用就用一個加號。

r w a三個  組合的時候,只能用到和a的 組合!

 

w +

可以組合使用,

但是 w 的效果是每次用時,就會重建數據,

1.用w 寫入 + 更新 功能 就會有寫入效果

2.之前這個文件裏面爲時間信息,可現在碰到w了,就會重新創建一個文件,是個新的文件,所以裏面什麼都沒有。

3.更新寫入內容  =.=

4.讀取數據,現在是讀不到數據的,因爲更新寫入數據時也是指針控制。寫完一個指針移動一下,等你寫完之後指針就到了結尾處 ,所以讀取數據時,是讀不到前面的。

除非把指針移動到開口去。

blob.png

 

a

含義 寫入,在文件末尾追加新的內容,文件不存在,創建之

下面看下  a的效果跟 w 做一下對比。

blob.png

表達含義:

1.用a的方法 操作打開文件

2.進行寫入的操作,a是可以寫入的。

3.查看文件是沒有權限的

4.釋放文件控制

5。用讀的方式查看了 a寫入的有沒有生效;

6.追加信息成功,在文件末尾追加了abc

w是直接寫入 重建文件

a是在文件末尾追加內容。如果沒有文件就新建一個。

 

看下a+和 r+ 的區別

blob.png
表達含義:

a+

1. xq5.txt文件進行 a末尾更新權限 +獲得讀的權限

2.讀取的是爲空的,因爲指針現在在文件結尾。沒有消息

3.釋放文件

r+

4.進行讀取更新。可讀可寫。

5.寫入內容 hello

6.因爲寫入後文件爲文件末尾,查看也爲空,就釋放文件用讀的方式。

7.r 的方式對 xq5.txt文件進行操作。

8.打開感覺出現了替換的效果,用r的話,因爲r的權限是讀,會從文件的開頭讀取,+是更新,可以寫入。產生了一個替換的效果。

 

 

到這裏呢,對着三個模式的基本概念就明確了。

至於bU,如果要進行讀取 二進制的圖片 MP3這類文件或者一個程序,可以 進行 rb 進行讀取。

但是讀取出來的信息不是人類能搞懂的一個信息。

現在已經基本上講解了怎麼讀 怎麼寫。

讀有read readlinereadlines

寫有writewritelines

瞭解知識點,瞭解IO文件的 讀取 創建 寫入方法。

 

補充更新1.9

介紹幾個新功能

提交更新、偏移量、

FilcObject.flush()

提交更新案例

blob.png

表達含義

1.先查看文件,

2.內容如下

3.釋放內存解除文件佔用

4. r+ 讀取更新方式 賦值

5.寫入新的內容。

 

blob.png

寫入命令 執行後 ,文件不會立即生效,

這個時候運用 .flush(),及時更新,文件重新打開立即生效。

如果不提交更新,當你用.close之後,把文件關掉,它會自動提交更新。

blob.png

 

偏移量

FileObkect.seek (偏移量,選項)

文件 對象.查找

偏移  代表你要移動幾位,,選項爲  位置選擇字符位置0

blob.png 

 

.seek例子

blob.png

文件已經讀取過,選擇讀取,在讀是讀不到數據的。

因爲指針,移動到了文件末尾,所以讀取後面內容爲空。這個時候就運用到我們的方法了。

 

 

偏移量爲0,選項爲0,指針移動到文章開頭。

指針 從頭讀取得到內容。

blob.png

 

偏移量爲1 ,選項爲0,指針從頭移動。移動一位。

讀取得到指針移動一位後的下面內容。

blob.png

 

除了從開頭開始移動

還有兩種移動方式,

一種是表示從當前,指針所指向的位置,先後移動,選項爲1

如果從文件的末尾像前移動的話,選項爲2.

 

注意事項

PY3

這裏是用r的方式打開的

注意純文本的文件,不允許從當前位置,從文件末尾,先前 或者先後移動。

區別點 py3中要用 rb  二進制的方式去打開它,py2裏可以直接用  r 讀取的方式打開

blob.png

 

選項爲 1 2 展示

選項1展示

blob.png

選擇爲1的顯示

1,用rb讀取方式。

2.b 代表用 二進制的方式讀取的,讀取全部內容

3.從當前位置,讀取,當前位置爲末尾,向前讀取4

4.得到內容 48hh

 

選項爲2的顯示。

blob.png

選項爲 2 的顯示,

1. rb 讀取二進制的方式,

2. b  代表用二進制方式讀取的 ,讀取全部內容

3.偏移量爲-2,代表向前移動,選項2 代表從文件末尾向前移動偏移量。

4.向前移動兩位得到後兩位結果 hh






2018年1月6號 王宇林



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