国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python讀寫文件方法總結

2020-02-23 01:35:25
字體:
來源:轉載
供稿:網友

本文實例總結了Python讀寫文件方法。分享給大家供大家參考。具體分析如下:

1.open

使用open打開文件后一定要記得調用文件對象的close()方法。比如可以用try/finally語句來確保最后能關閉文件。

file_object = open('thefile.txt')try:   all_the_text = file_object.read( )finally:   file_object.close( )

注:不能把open語句放在try塊里,因為當打開文件出現異常時,文件對象file_object無法執行close()方法。

2.讀文件

讀文本文件

input = open('data', 'r')#第二個參數默認為rinput = open('data')

讀二進制文件
代碼如下:input = open('data', 'rb')

讀取所有內容

file_object = open('thefile.txt')try:   all_the_text = file_object.read( )finally:   file_object.close( )

讀固定字節

file_object = open('abinfile', 'rb')try:  while True:     chunk = file_object.read(100)    if not chunk:      break     do_something_with(chunk)finally:   file_object.close( )

讀每行
代碼如下:list_of_all_the_lines = file_object.readlines( )

如果文件是文本文件,還可以直接遍歷文件對象獲取每行:

for line in file_object:   process line

3.寫文件

寫文本文件
代碼如下:output = open('data', 'w')

寫二進制文件
代碼如下:output = open('data', 'wb')

追加寫文件
代碼如下:output = open('data', 'w+')

寫數據

file_object = open('thefile.txt', 'w')file_object.write(all_the_text)file_object.close()

寫入多行
代碼如下:file_object.writelines(list_of_text_strings)

注意,調用writelines寫入多行在性能上會比使用write一次性寫入要高。

在處理日志文件的時候,常常會遇到這樣的情況:日志文件巨大,不可能一次性把整個文件讀入到內存中進行處理,例如需要在一臺物理內存為 2GB 的機器上處理一個 2GB 的日志文件,我們可能希望每次只處理其中 200MB 的內容。
在 Python 中,內置的 File 對象直接提供了一個 readlines(sizehint) 函數來完成這樣的事情。以下面的代碼為例:

file = open('test.log', 'r')sizehint = 209715200  # 200Mposition = 0lines = file.readlines(sizehint)while not file.tell() - position < 0:    position = file.tell()    lines = file.readlines(sizehint)

每次調用 readlines(sizehint) 函數,會返回大約 200MB 的數據,而且所返回的必然都是完整的行數據,大多數情況下,返回的數據的字節數會稍微比 sizehint 指定的值大一點(除最后一次調用 readlines(sizehint) 函數的時候)。通常情況下,Python 會自動將用戶指定的 sizehint 的值調整成內部緩存大小的整數倍。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云安县| 徐闻县| 河北省| 建昌县| 克什克腾旗| 香河县| 巴楚县| 安康市| 依兰县| 隆子县| 杭州市| 荥阳市| 曲麻莱县| 邮箱| 闽侯县| 革吉县| 山丹县| 新津县| 定陶县| 土默特左旗| 兖州市| 星子县| 环江| 六枝特区| 舞阳县| 临泽县| 仁布县| 长顺县| 德阳市| 昆山市| 呼伦贝尔市| 汽车| 新竹县| 基隆市| 石阡县| 河东区| 荆门市| 嘉祥县| 南阳市| 扶余县| 沂水县|