Python でファイルから特定の行を読み取る方法
-
小さなサイズのファイルの特定の行を読み取る
fileobject.readlines()
-
Python で特定の行を読み取るための
fileobject
のfor
ループ -
Python で特定の行を読み取る
linecache
モジュール -
Python で大きなファイルから特定の行を読み取るときに
列挙する
Python でファイルを読み取る一般的な方法は、ファイルを完全に読み取ってから、特定の行を処理することです。Python でのファイルの読み取りは高速です。たとえば、100MiB ファイルを書き込むのにおよそ 0.67 秒かかります。ただし、ファイルサイズが 100 MB を超えると、メモリに読み込まれるときにメモリの問題が発生します。
Python には、次のセクションで紹介するように、ファイルから特定の行を読み取るための 3つの組み込みメソッドがあります。
小さなサイズのファイルの特定の行を読み取る fileobject.readlines()
fileobject.readlines()
はすべてのファイルの内容をメモリに読み込みます。リストのスライスを使用して特定の行を読み取ることができます。
10 行目を読む必要があるだけなら
with open("file.txt") as f:
data = f.readlines()[10]
print(data)
10 行から 100 行を読み取る必要がある場合、
with open("file.txt") as f:
data = f.readlines()[10:100]
print(data)
Python で特定の行を読み取るための fileobject
の for
ループ
for line in fileobject
は小さなファイルのクイックソリューションでもあります。
lines = [10, 100]
data = []
i = 0
with open("file.txt", "r+") as f:
for line in f:
if i in lines:
data.append(line.strip)
i = i + 1
print(data)
Python で特定の行を読み取る linecache
モジュール
多くのファイルを読み取るための linecache
は、繰り返しまたは多くの行を抽出することができます。
import linecache
data = linecache.getline("file.txt", 10).strip()
文字列メソッド strip()
は両端から空白を取り除いた文字列を返します。
linecache
モジュールを使用すると、キャッシュを使用して内部で最適化しながら、Python ソースファイルから任意の行を取得できます。これは、単一のファイルから多くの行を読み取る一般的な方法です。トレースバックモジュールは、これを使用して、フォーマットされたトレースバックに含まれるソース行を取得します。
Python で大きなファイルから特定の行を読み取るときに列挙する
ファイルを読み取るときに、サイズが大きいと、メモリに収まらないなどの問題が発生する可能性があります。この場合、enumerate()
を使用できます。
with open("file.txt") as f:
for i, line in enumerate(f):
pass # process line i
n
行目については、i = n-1
であることに注意してください。
enumerate()
関数は、トラバース可能なデータオブジェクト(リスト、タプル、文字列など)をインデックスシーケンスに結合し、データとデータ添え字を同時に一覧表示します。ために使用されます。ループ。