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

首頁 > 編程 > Python > 正文

python中readline判斷文件讀取結束的方法

2020-02-23 06:09:49
字體:
來源:轉載
供稿:網友

本文實例講述了python中readline判斷文件讀取結束的方法。分享給大家供大家參考。具體分析如下:

大家知道,python中按行讀取文件可以使用readline函數,下面現介紹一個按行遍歷讀取文件的方法,通過這個方法,展開我們要討論的問題:
代碼如下:filename = raw_input('Enter your file name')  #輸入要遍歷讀取的文件路徑及文件名
file = open(filename,'r')
done = 0
while not  done:
        aLine = file.readline()
        if(aLine != ''):
            print aLine,
        else:
            done = 1
file.close()   #關閉文件
上面是我們經常看到的按行遍歷一個文件方法,你可能已經注意到我在代碼中寫的if(aLine != '' ):部分。當readline讀取到為空的時候,意味著讀到了文件的結束。這個時候,問題就在這里,很多人會想,是不是遇到一個空行,也會被認為是文件的結束呢?這就引入了標題的問題。

事實上,文件的空白行并不會返回一個空行。因為在每一行的末尾還有一個或者多個分隔符,因此“空白行”至少會有一個換行符或者系統使用的其他符號。所以,即使文件中真的包含一個“空白行”,讀入的行也不是空的,這就意味著在真實遍歷讀取到文件結束之前,程序實際上是不會停止的

readline() 和 .readlines() 非常相似。它們都在類似于以下的結構中使用:
Python .readlines()

示例如下:
代碼如下:fh = open('c:/autoexec.bat')
 for  line in  fh.readlines():
 print  line
       
.readline() 和 .readlines() 之間的差異是后者一次讀取整個文件,象 .read() 一樣。.readlines() 自動將文件內容分析成一個行的列表,該列表可以由 Python 的 for ... in ... 結構進行處理。另一方面,.readline() 每次只讀取一行,通常比 .readlines() 慢得多。僅當沒有足夠內存可以一次讀取整個文件時,才應該使用 .readline()。

readlines返回行數問題

官方文檔這樣寫的:
If the optional sizehint argument is present, instead of reading up to EOF, whole lines totalling approximately sizehint bytes (possibly after rounding up to an internal buffer size) are read.

確實是指定大小啊并且會受內部緩沖區大小影響向上取整到內部緩沖區大小。內部緩沖區大約是8k也難怪我每次測試文件大小都是8k(8192)倍數
代碼如下:#!/usr/bin/env python
f=open('a.txt').readlines(1)
open('b.txt','w').writelines(f)
open('c.txt','w').writelines(open('a.txt').readlines(200))

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新民市| 安化县| 西丰县| 正蓝旗| 彩票| 土默特右旗| 大埔县| 石林| 沁阳市| 大竹县| 普兰县| 武功县| 丘北县| 灵台县| 长岛县| 全南县| 通化县| 彭阳县| 美姑县| 汤阴县| 翁牛特旗| 托里县| 沙洋县| 正定县| 义马市| 周至县| 岢岚县| 鄂托克旗| 五峰| 阿坝| 惠东县| 阿拉善右旗| 沙湾县| 石门县| 体育| 定南县| 楚雄市| 都匀市| 崇明县| 天柱县| 花垣县|