キーフレーズまたはキーワードをテキストファイルで検索し、キーフレーズまたはキーワードが含まれている行を印刷するにはどうすればよいですか?
searchfile = open("file.txt", "r")
for line in searchfile:
if "searchphrase" in line: print line
searchfile.close()
複数の行を(簡単な方法で)印刷するには
f = open("file.txt", "r")
searchlines = f.readlines()
f.close()
for i, line in enumerate(searchlines):
if "searchphrase" in line:
for l in searchlines[i:i+3]: print l,
print
print l,
のコンマにより、余分なスペースが出力に表示されなくなります。末尾のprintステートメントは、異なる行の結果を区別します。
またはそれ以上(マークランサムから盗み取ります):
with open("file.txt", "r") as f:
searchlines = f.readlines()
for i, line in enumerate(searchlines):
if "searchphrase" in line:
for l in searchlines[i:i+3]: print l,
print
with open('file.txt', 'r') as searchfile:
for line in searchfile:
if 'searchphrase' in line:
print line
senderle に謝罪して、私が露骨にコピーした人。
「i + 3」の範囲外のインデックスの可能性に注意してください。次のようなことができます:
with open("file.txt", "r") as f:
searchlines = f.readlines()
j=len(searchlines)-1
for i, line in enumerate(searchlines):
if "searchphrase" in line:
k=min(i+3,j)
for l in searchlines[i:k]: print l,
print
編集:おそらく必要ありません。いくつかの例をテストしました。 yが範囲外の場合、x [y]はエラーを返しますが、x [y:z]はyとzの範囲外の値に対してエラーを与えないようです。