除了可以借助 fileinput 模組實現讀取檔案外,python 還提供了 linecache 模組。和前者不同,linecache 模組擅長讀取指定檔案中的指定行。換句話說,如果我們想讀取某個檔案中指定行包含的資料,就可以使用 linecache 模組。
值得一提的是,linecache 模組常用來讀取 python 原始檔中的**,它使用的是 utf-8 編碼格式來讀取檔案內容。這意味著,使用該模組讀取的檔案,其編碼格式也必須為 utf-8,否則要麼讀取出來的資料是亂碼,要麼直接讀取失敗(python 直譯器會報 syntaxerror 異常)。
要使用 linecache 模組,就必須知道其包含了哪些函式。linecache 模組中常用的函式及其功能如表 1 所示。
表 1 linecache模組常用函式及功能
函式基本格式
功能linecache.getline(filename, lineno, module_globals=none)
讀取指定模組中指定檔案的指定行(僅讀取指定檔案時,無需指定模組)。其中,filename 引數用來指定檔名,lineno 用來指定行號,module_globals 引數用來指定要讀取的具體模組名。注意,當指定檔案以相對路徑的方式傳給 filename 引數時,該函式以按照 sys.path 規定的路徑查詢該檔案。
linecache.clearcache()
如果程式某處,不再需要之前使用 getline() 函式讀取的資料,則可以使用該函式清空快取。
linecache.checkcache(filename=none)
檢查快取的有效性,即如果使用 getline() 函式讀取的資料,其實在本地已經被修改,而我們需要的是新的資料,此時就可以使用該函式檢查快取的是否為新的資料。注意,如果省略檔名,該函式將檢車所有快取資料的有效性。
舉個例子:
import linecache
import string
#讀取string模組中第 3 行的資料
print(linecache.getline(string.__file__, 3))
# 讀取普通檔案的第2行
print(linecache.getline('my_file.txt', 2))
在執行該程式之前,需保證 my_file.txt 檔案是以 utf-8 編碼格式儲存的(python 提供的模組,通常編碼格式為 utf-8)。在此基礎上,執行該程式,其輸出結果為:
public module variables:
常用模組linecache學習
linecache 模組允許從 python 原始檔中隨機讀取指定行,並在內部使用快取優化儲存。由於該模組主要被設計成讀取 python 原始檔,因此它會用 utf 8 字符集來讀取文字檔案。實際上,使用 linecache 模組也可以讀取其他檔案,只要該檔案使用了 utf 8 字符集儲存。line...
讀取檔案指定行linecache
import linecache poem programming is fun when the work is done if you wanna make your work also fun use python f file poem.txt w f.write poem f.close ...
python模組 隨機模組
1 import random23 print random.random 隨機產生乙個 0,1 的 float 0.02624429936160077645 print random.randint 1,4 1,4 隨機整數 367 print random.randrange 1,3 1,3 隨...