コマンドを次のように使用せずに、ファイルテキストが何行含まれているかを知ることができるかどうかを知りたいです。
with open('test.txt') as f:
text = f.readlines()
size = len(text)
私のファイルは非常に大きいので、この種のアプローチを使用するのは難しいです...
もっとPythonicは、次のようにsum
関数内でジェネレータ式を使用します。
with open('test.txt') as f:
count = sum(1 for _ in f)
アプローチを少し変更
with open('test.txt') as f:
line_count = 0
for line in f:
line_count += 1
print line_count
メモ:
ここでは、1行ずつ実行し、完全なファイルをメモリにロードしません。
ファイルの行数はメタデータに保存されません。したがって、実際にそれを理解するには、ファイル全体を実行する必要があります。ただし、次のようにメモリを少し効率的にすることができます。
lines = 0
with open('test.txt') as f:
for line in f:
lines = lines + 1
with open('test.txt') as f:
size=len([0 for _ in f])