Python 中的文字行隨機訪問 (linecache)
Python 標準庫中 linecache 模組的目的是方便對任何文字檔案的隨機訪問,儘管此模組被 Python 的 traceback 模組廣泛用於生成錯誤跟蹤堆疊。讀取的漂亮列印結果儲存在快取中,以便在重複讀取行時節省時間。
此模組中最重要的函式是 getline(),它從給定檔案中讀取指定的行號。以下是函式列表:
getline(file, x)
此函式返回檔案中的第 x 行。如果不存在,則返回空字串。如果當前路徑中不存在該檔案,則該函式嘗試在 sys.path(模組搜尋路徑)中的目錄中找到它。
clearcache()
如果不再需要先前 getline() 函式的漂亮列印結果,可以使用此函式清除快取。
checkcache()
此函式檢查快取是否有效。如果快取中的檔案可能已在磁碟上更改,這將非常有用。
lazycache()
使用 module_globals 為檔名填充快取。只有在呼叫 getlines 時才會向模組載入器請求原始碼,而不是立即請求。
getlines()
此函式以列表物件的形式返回檔案中的行。
updatecache()
此函式更新快取條目並返回行列表。
為了演示 linecache 功能的使用,我們首先構建一個文字檔案來儲存著名的 Python 之禪(影響 Python 設計理念的軟體原則列表)。'import this' 的輸出透過以下程式碼重定向到 zen.txt:
import sys, io
zen = io.StringIO()
old_stdout = sys.stdout
sys.stdout = zen
import this
sys.stdout = old_stdout
f=open('zen.txt','w')
f.write(zen.getvalue())
f.close()執行上述程式碼後,將在當前目錄中建立 zen.txt。我們將使用此文字檔案使用 getline() 函式從中讀取行。
從檔案中讀取第 4 行:
>>> linecache.getline('zen.txt',4)
'Explicit is better than implicit.\n'請注意,返回的字串以換行符結尾。
要顯示第 4 行到第 10 行的行號,請對 getlines() 函式返回的列表使用切片運算子:
>>> linecache.getlines('zen.txt')[4:10]
['Simple is better than complex.\n', 'Complex is better than complicated.\n', 'Flat is better than nested.\n', 'Sparse is better than dense.\n', 'Readability counts.\n', "Special cases aren't special enough to break the rules.\n"]在這篇文章中,我們學習了 Python 標準庫中的 linecache 模組。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP