linecache
今日は、ファイルの特定の行の内容を簡単に取得するために使用できる小さな Python モジュール linecache を共有します。また、表示用に関連するソース コード情報を取得するためにトレースバック モジュールによっても使用されます。
使用法は非常に簡単です:
>>> import linecache >>> linecache.getline('/etc/passwd', 4) 'sys:x:3:3:sys:/dev:/bin/sh\n'
linecache.getline 最初のパラメータはファイル名で、2 番目のパラメータは行番号です。ファイル名が直接見つからない場合は、sys.path で見つかります。
リクエストされた行数がファイルの行数を超えた場合、関数はエラーを報告せず、空の文字列を返します。ファイルが存在しない場合、関数はエラーを報告せず、空の文字列を返します。
linecache は、ファイルの読み取りを最適化するためにいくつかの情報をキャッシュしようとします。また、キャッシュの依存関係を処理する 2 つの方法も提供します。
linecache.clearcache() # 清除不再需要的linecache.getcache()获取的内容 linecache.checkcache([filename]) # 检查文件在硬盘上是否有更新,如果有更新缓存。 # 如果没有提供文件名参数,则检查linecache缓存里所有的条目
その他
ファイルが非常に大きく、1 行だけ読み取る必要がある場合、ラインキャッシュの使用がプログラムのボトルネックになる場合は、次の方法を使用して速度を改善することもできます:
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の3つのプラットフォームで同じように開き、n
と読みます。