首頁 > 後端開發 > Python教學 > Python linecache模組

Python linecache模組

高洛峰
發布: 2016-11-22 09:50:48
原創
1676 人瀏覽過

linecache

今天分享一個python的小模組: linecache, 可以用它方便地取得某一文件某一行的內容。而且它也被 traceback 模組用來取得相關原始碼資訊來展示。
用法很簡單:

>>> import linecache
>>> linecache.getline('/etc/passwd', 4)
'sys:x:3:3:sys:/dev:/bin/sh\n'
登入後複製

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 &#39;&#39;
    for current_line_number, line in enumerate(open(thefilepath, &#39;rU&#39;)):
        if current_line_number == desired_line_number -1:
            return line
    return &#39;&#39;
登入後複製

ps: 打開文件的方式'rU'是以一種windows,mac,unix三個平台同一的方式打開,都讀取成 n

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板