官术网_书友最值得收藏!

1.3.2 文件處理

到目前為止,所有的程序都是從控制臺獲取輸入并將執行結果輸出到控制臺的,實現了與用戶的交互。但控制臺上只能顯示有限的數據,也無法反復從程序中生成數據,一旦發生意外,所有工作成果將瞬間消失。文件處理在數據需要永久存儲到文件時發揮著重要作用,通過文件處理,可以讀取、寫入、創建、刪除和更改文件。

Python提供了內置的文件對象,以及用于對文件、目錄進行操作的內置模塊,通過這些可以很方便地將數據保存到文件中。

1.文件路徑

在Windows上,書寫路徑時使用反斜線作為路徑分隔符。但在OS X和Linux上,使用正斜線作為路徑分隔符。如果想要程序運行在所有操作系統上,在編寫程序時,就必須考慮到這兩種情況。

r/R表示原始字符串。所有的字符串都是直接按照字面的意思來使用的,沒有轉義特殊或不能輸出的字符。原始字符串第一個引號前有字母“r”(可以大寫),與普通字符串有著幾乎完全相同的語法。我們只需要在文件路徑字符串引號前加上r或R就可以輕松處理文件路徑帶來的問題了。

2.文件操作

Python中文件操作有很多種,常見的操作是對文件進行讀取和寫入。文件必須在打開之后才能進行操作,在操作結束之后,還應該將其關閉。因此文件操作可以分為以下3步,每一步都需要借助對應的函數實現。

●打開文件:使用內置的open()函數,該函數會返回一個文件對象。

●對已打開的文件進行讀/寫操作:讀取文件內容,可使用read()、readline()以及readlines()函數;向文件中寫入內容,可以使用write()函數。

●關閉文件:完成對文件的讀/寫操作之后,需要關閉文件,可以使用close()函數。

(1)打開文件

在Python中,要操作文件,首先需要創建或者打開指定的文件,并創建文件對象,而這些工作可以通過內置的open()函數完成。

●'file_name.txt'是要打開文件的名稱。不僅可以指定文件名,還可以指定路徑(絕對路徑或相對路徑)。

●'r'是文件打開模式,表示以只讀的模式打開文件。open()支持更多的文件打開模式,常用的文件打開模式如表1-1所示。

表1-1 常用的文件打開模式

(2)讀取文件

Python提供了如下3種函數來實現讀取文件中數據的操作。

●read()函數:逐個字節或者字符讀取文件中的內容。

●readline()函數:逐行讀取文件中的內容。

●readlines()函數:一次性讀取文件中的多行內容。

下面通過readlines()函數讀取文件R1.txt,R1.txt文件內容如下:

readlines()函數操作如下:

(3)寫入文件

寫入文件時,指定正確的文件打開模式非常重要,以免誤刪。

●w:打開文件進行寫入。如果文件存在,則刪除其內容。

●a:打開文件以添加數據,數據添加到文件末尾。

如果文件不存在,則在這兩種模式下都會創建一個文件。以下函數用于寫入文件。

●write():將一行內容寫入文件。

●writelines():允許將字符串列表作為參數發送到文件中。

下面通過write()函數將字符串寫入文件。

(4)關閉文件

前面在介紹文件操作時,一直強調打開的文件最后一定要關閉,否則會給程序的運行造成意想不到的隱患。但是,即便使用close()函數,如果在打開文件或文件操作過程中拋出了異常,則還是無法及時關閉文件。

為了更好地避免此類問題出現,Python提供了with as語句用來操作上下文管理器(Context Manager),它能夠幫助我們自動分配并且釋放資源,保證文件自動關閉。

有時需要同時處理兩個文件,如將從一個文件中讀出的內容再寫入另一個文件。在這種情況下,可以按如下方式打開兩個文件:

主站蜘蛛池模板: 巫山县| 彭山县| 竹北市| 江西省| 福清市| 商洛市| 乐清市| 和硕县| 将乐县| 海南省| 武平县| 都江堰市| 江源县| 汝南县| 简阳市| 墨脱县| 西峡县| 波密县| 凤庆县| 东乡| 怀来县| 寿阳县| 滨海县| 太仓市| 裕民县| 定结县| 陇西县| 双柏县| 左贡县| 滦平县| 广汉市| 达日县| 玛曲县| 孟州市| 广平县| 屯昌县| 略阳县| 宁阳县| 巴楚县| 孙吴县| 丹巴县|