Python學習筆記之文件

我們在平時的工作或者學習過程中,需要對大量的文件進行處理,如果我們可以學習一門腳本語言,能夠有效的處理文件,那將對我們的工作是一個很大的幫助。在Python的基本操作中,提供了一些關(guān)于文件的操作。

文件對象的操作

  • 使用open()或者file()函數(shù)打開文件。
  • 使用file.read()讀取文件。
  • 使用file.readline()讀取文件的一行相關(guān)信息。
  • 使用file.write()進行寫入文件。
  • 使用file.writelines(seq)向文件寫入字符串序列seq。
  • 使用file.close()關(guān)閉文件。
  • 使用file.tell()返回當前在文件中的位置。
  • 使用file.seek(off, where=0)在文件中移動指針,從where偏移off字節(jié)。

文件對象的訪問模式

  • r 以讀方式打開
  • w 以寫方式打開
  • a 以追加模式打開
  • rU 以讀方式打開,同時提供通用換行符
  • r+、w+、a+ 以讀寫模式打開
  • rb 以二進制讀模式打開
  • wb 以二進制寫模式打開
  • ab 以二進制追加模式打開

文件屬性

  • file.closed 返回True表示文件已經(jīng)關(guān)閉
  • file.encoding 文件所使用的編碼
  • file.name 文件名
  • file.mode 文件打開時使用的訪問模式

文件系統(tǒng)

對于文件系統(tǒng)的訪問大多通過Python的os模塊實現(xiàn)的,我們要熟練地掌握這一模塊。

讀寫文本數(shù)據(jù)

使用open()函數(shù)配合r模式讀取文本文件的內(nèi)容。

with open('filename.txt','r') as f:
    data = f.read()

使用open()函數(shù)配合w模式對文本文件進行寫入。

with open('filename.txt','w') as f:
    f.write(text)

使用open()函數(shù)配合a模式對文本文件進行追加。

with open('filename.txt','a') as f:
    f.write(text)

注意:open()函數(shù)的默認模式是'r'.在示例中采用了with語句,這會為使用的文件創(chuàng)建一個上下文模式,當程序的控制流程離開with語句塊后,文件自動關(guān)閉。如果是普通的文件操作模式,記得手動關(guān)閉文件。

f = open('filename.txt','r')
data = f.read()
f.close()

讀寫二進制數(shù)據(jù)

使用open()函數(shù)的rb或者wb實現(xiàn)對二進制數(shù)據(jù)的讀或?qū)憽?/p>

with open('filename.bin','rb') as f:
    data = f.read()
    f.write(b'Hello World')

在讀取或者寫入二進制數(shù)據(jù)時,所有的數(shù)據(jù)是以字節(jié)串的形式操作,而不是文本字符串。

如果要在二進制文件中讀取或者寫入文本內(nèi)容,要確保進行編碼或者解碼操作。

with open('filename.bin','rb') as f:
    data = f.read(16)
    text = data.decode('utf-8')

with open('filename.bin','rb') as f:
    text = 'Hello World'
    f.write(text.encode('utf-8'))

不存在的文件的操作

使用x模式(Python3中對open()函數(shù)的拓展)來代替w模式對一個不存在文件系統(tǒng)的文件操作。

with open('filename.txt','xt') as f:
    f.write('Hello\n')

本節(jié)重點在于os模塊的使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡單分配策略的問題地址空間不隔離內(nèi)存使用效率低程序運行的地址不確定 關(guān)于...
    SeanCST閱讀 8,151評論 0 27
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,371評論 2 33
  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進制字符串對數(shù)據(jù)進行解...
    上街買菜丶迷倒老太閱讀 1,510評論 0 20
  • 寢室斷電了,學校為了我們的健康著想
    qi15閱讀 166評論 0 0

友情鏈接更多精彩內(nèi)容