摘要:今天分享一個的小模塊可以用它方便地獲取某一文件某一行的內容。而且它也被模塊用來獲取相關源碼信息來展示。用法很簡單第一參數是文件名,第二個參數是行編號。如果請求的行數超過文件行數,函數不會報錯,而是返回空字符串。
linecache
今天分享一個python的小模塊: linecache, 可以用它方便地獲取某一文件某一行的內容。而且它也被 traceback 模塊用來獲取相關源碼信息來展示。
用法很簡單:
>>> import linecache >>> linecache.getline("/etc/passwd", 4) "sys:x:3:3:sys:/dev:/bin/sh "
linecache.getline 第一參數是文件名,第二個參數是行編號。如果文件名不能直接找到的話,會從 sys.path 里找。
如果請求的行數超過文件行數,函數不會報錯,而是返回""空字符串。
如果文件不存在,函數也不會報錯,也返回""空字符串。
linecache 會嘗試用緩存一些信息來優化對文件的讀取。它還提供了兩個方法來處理緩存相關。
linecache.clearcache() # 清除不再需要的linecache.getcache()獲取的內容 linecache.checkcache([filename]) # 檢查文件在硬盤上是否有更新,如果有更新緩存。 # 如果沒有提供文件名參數,則檢查linecache緩存里所有的條目其它
當文件很大而只要讀取其中一行時,如果采用linecache成為程序的瓶頸,也可以采用如下方法來獲得速度上一些提升:
def get_line(thefilepath, desired_line_number): if desired_line_number < 1: return "" for current_line_number, line in enumerate(open(thefilepath, "rU")): if current_line_number == desired_line_number -1: return line return ""
ps: 打開文件的方式"rU"是以一種windows,mac,unix三個平臺同一的方式打開,都讀取成 n, 參照這里。
參考資料https://docs.python.org/2/lib...
《Python Cookbook》Chapter2.4
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44299.html
摘要:項目的一個需求是解析的日志文件。項目中已經按照業務規則對日志文件進行了處理命名規則如下并且所有的日志文件存放在統一路徑下。模塊使用緩存,所以會耗費內存,耗費量與要解析的文件相關。剩下的工作就是根據業務需要,對獲得的基本信息進行處理。 項目的一個需求是解析nginx的日志文件。 簡單的整理如下: 日志規則描述 首先要明確自己的Nginx的日志格式,這里采用默認Nginx日志格式: ...
摘要:項目的一個需求是解析的日志文件。項目中已經按照業務規則對日志文件進行了處理命名規則如下并且所有的日志文件存放在統一路徑下。模塊使用緩存,所以會耗費內存,耗費量與要解析的文件相關。剩下的工作就是根據業務需要,對獲得的基本信息進行處理。 項目的一個需求是解析nginx的日志文件。 簡單的整理如下: 日志規則描述 首先要明確自己的Nginx的日志格式,這里采用默認Nginx日志格式: ...
摘要:轉自程序員的資料庫最流行的模塊庫大全收藏下面的列表是最流行的模塊庫,該資源列表列出了使用頻率最高的模塊庫,是學習最好的資源之一,趕緊收藏吧 轉自:程序員的資料庫-最流行的Python模塊庫大全【收藏】 下面的列表是最流行的Python模塊庫,該Python資源列表列出了使用頻率最高的Python模塊庫,是學習Python最好的資源之一,趕緊收藏吧!! os (2810) ...
摘要:例如等價于到結束,但不包括。例如返回沒有每次跳躍的間距,默認為。 異常處理 單個異常處理: try: print(num) except NameError: print(沒有定義變量) except FileNotFoundError: print(找不到文件路徑) print(1) 多個異常處理: try: print(num) # 1...
摘要:的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。已經導入的模塊會保存在字典中。 Python的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。 模塊分類 內置模塊 內置模塊可以理解成當你安裝好python環境之后,直接可以使用import導入的就是內置模塊,...
閱讀 1882·2021-11-11 16:55
閱讀 2064·2021-10-08 10:13
閱讀 739·2019-08-30 11:01
閱讀 2155·2019-08-29 13:19
閱讀 3277·2019-08-28 18:18
閱讀 2620·2019-08-26 13:26
閱讀 579·2019-08-26 11:40
閱讀 1864·2019-08-23 17:17