Preface:
你想根據給出的行號,從文本文件中讀取一行數據. 而 Python 標準庫 linecache 模塊非常適合這個任務:
- import linecache
- theline = linecache .getline(thefilepath, desired_line_number)
對這個任務而言,標準的 linecache 模塊是Python能夠提供的最佳解決工具。當你想要對文件中的某些行進行多次讀取時,linecache 特別有用,因為它會緩存一些信息以避免重複一些工作。當你不需要從緩存中獲得行數據時,可以調用模塊的 clearcache 函數來釋放被用作緩存的內存。當磁盤上的文件發生了變化時,還可以調用checkcache,以確保緩存中存儲的是最新的信息.
linecache 讀取並緩存你指定名字的文件中的所有文本,所以,如果文件非常大,而你只需要其中一行,為此使用linecache 則顯得不是那麼必要. 如果這部分可能是你的程序的瓶頸,可以使用顯式的循環,並將其封裝在一個函數中,這樣可以獲得速度上的一些提升,像這樣:
- def getline(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 ''
沒有留言:
張貼留言