私はファイルを読んでいて、forループの次の行を読む方法があるのだろうか?
私は現在、このようなファイルを読んでいます:
_file = open(input,"r").read()
for line in file.splitlines():
line = doSomething()
_
とにかく、そのforループでファイルの次の行を取得して、doSomething()
関数で何らかの操作を実行できるようにしますか?
開いているファイルをループするだけです:
_infile = open(input,"r")
for line in infile:
line = doSomething(line, next(infile))
_
ファイルをイテレータとして使用するようになったため、infile
変数で next()
function をいつでも呼び出して、余分な行を取得できます。
2つの追加のヒント:
変数file
を呼び出さないでください。 Pythonの組み込みfile
タイプオブジェクトをマスクします。代わりにinfile
という名前を付けました。
with
ステートメントを使用して、開いているファイルをコンテキストマネージャーとして使用できます。完了すると、ファイルが自動的に閉じられます。
_with open(input,"r") as infile:
for line in infile:
line = doSomething(line, next(infile))
_
file = open(input,"r").read()
lines = file.read().splitlines()
for i in range(len(lines)):
line = lines[i]
next_line = lines[i+1]
行nにいる場合、行n + 1にアクセスできるようにしたいということだと思います。
それを行う最も簡単な方法は、交換することです
for line in file.splitlines():
と
lines = file.readlines()
for i in xrange(len(lines)):
lines[i]
で現在の行を取得し、lines[i+1]
で次の行を取得できます
よりPython的な方法は列挙を使用することです
lines = file.readlines()
for index, line in enumerate(lines):
現在、通常のように「行」に現在の行がありますが、それに関連する別の行を見つけたい場合は、インデックスもあります。