Python文件和數據格式化(教程)

文件是一個存儲在副主存儲器的數據序列,可包含任何數據內容。python

概念上,文件是數據的集合和抽象,相似的,函數是程序的集合和抽象。函數

用文件形式組織和表達數據更有效也更加靈活。學習

文件包括兩種形式,文本文件和二進制文件。編碼

文本文件:通常由單一特定的編碼的字符組成spa

二進制文件:通常由0和比特1組成,沒有統一的字符編碼。指針

不管是經過文本仍是二進制建立的文件,均可以用兩種方式來打開。code

 咱們來舉個例子對比文本文件和二進制文件,blog

首先咱們在桌面建立一個文本文件,取名example,並寫入「我愛個人祖國」進程

以下所示:文檔

 

 注意:右下角的編碼方式爲「UTF-8」

而後執行代碼:

fp=open("example.txt","rt",encoding='UTF-8')
print(fp.readline())
fp.close()

fps=open("example.txt","rb")
print(fps.readline())
fps.close()

 

在這段代碼中,分別使用文本文件形式和二進制形式打開文檔,而後讀取、關閉。

注:rt爲文本文件形式、rb爲二進制文件形式。

運行結果以下所示:

 

 

接下來,咱們正式學習文件相關操做。

1.文件的打開和關閉

說到文件的打開關閉,不禁得讓我想起之前的笑話,把大象裝進冰箱須要幾步?

文件操做和這個笑話同樣,首先打開文件、而後進行操做、最後關閉文件。

文件的打開:

文件默認處於存儲狀態,只有將其打開當前程序纔有權操做這個文件。

打開不存在的文件,程序將會創造一個新文件來進行操做。

打開這個文件以後,文件處於被佔用狀態,另外一個進程不得對文件進行操做。

文件打開須要使用open()函數,格式以下:

<變量名>=open(<文件名>,<打開模式>)

encoding爲編碼方式

文件打開模式:

「r」    :只讀模式,文件不存在返回異常

「w」   :覆蓋模式,文件不存在則建立、文件存在則徹底覆蓋

「x「    :建立寫模式,文件不存在則建立、存在則返回異常

」a」    :追加寫模式,文件不存在則建立、文件存在則在穩健最後追加內容

「b」    :二進制模式

「f」     :文本文件模式(默認值)

「+」    :與 r\w\x\a一同使用,在原基礎上加入了同時讀寫功能

打開模式能夠爲字符串形式,其中r,w,x,a能夠和b,t,+組合使用

如剛剛例子的打開方式:rt,rb

encoding爲編碼方式

 

文件的關閉:

文件使用以後,要採用close()函數關閉文件,釋放文件的使用受權

使用方法以下:

<變量名>.close()

 

2.文件的讀取

文件打開以後,根據打開方式的不一樣能夠對文件進行對應讀寫操做。(記得注意編碼方式)

文件的讀取方法以下:

<file>.read(size=-1)

從文件讀入整個文件內容,給出參數則讀取前size長度的字符串

<file>.readline(size=-1)

從文件中讀入一行內容,若是給出參數則讀取每行前size長度的字符串

<file>.readlines(hint=-1)

從文件中讀入整個文件的內容,以每一行爲一個列表,若是給參入,只讀取前hint行

 

舉個例子,仍是剛剛的example文件,咱們多輸入兩行一樣的文件,逐行讀出。

先打開文件,而後for循環,經過readlines()逐行讀取、最後關閉。

代碼以下:

fp=open("example.txt","rt",encoding='UTF-8')
for line in fp.readlines():
    print(line)
fp.close()

 

運行結果以下:

 

 

3.文件的寫入

寫入的常見函數有三個

<file>.write(s)

向文件寫入一個字符串

<file>.writelines(lines)

講一個元素全爲字符串的列表寫入文件

<file>.seek(offset)

改變當前文件操做指針的位置,offset的值「0」爲文件開頭、「1」當前位置,「2」文件結尾

 

舉個例子,向文件寫入一個列表類型[「中國」、「美國」、「法國」]

代碼以下:

fp=open("example.txt","w+",encoding='UTF-8')
lst=["中國","美國","法國"]
fp.writelines(lst)
fp.close()

 

結果以下:

 

 

至此即是python文件方面的常見操做

 

 

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索