我有一個與Python讀入問題。我是新的生意......Python:部分閱讀文本文件
該計劃的部分看起來像這樣:
for line in f.readlines():
if ... :
print(line)
是否有可能,不僅打印線,同時也是下一行? (即使它不履行,如果...)
我試了一下:
for k,line in enumerate(f.readlines())
但我不知道如何通過其編號打印線(K)
這個問題有沒有簡單的解決方法?
我有一個與Python讀入問題。我是新的生意......Python:部分閱讀文本文件
該計劃的部分看起來像這樣:
for line in f.readlines():
if ... :
print(line)
是否有可能,不僅打印線,同時也是下一行? (即使它不履行,如果...)
我試了一下:
for k,line in enumerate(f.readlines())
但我不知道如何通過其編號打印線(K)
這個問題有沒有簡單的解決方法?
你不需要將整個文件讀入內存中做到這一點:
prev = None
for line in f:
if prev is None:
prev = line
else:
print prev + line
prev = line
感謝您的幫助。現在它工作:) – user3205790
存儲在一個變量行名單:
lines = f.readlines()
for k, line in enumerate(lines):
# line - current line
# lines[k + 1] - next line
請注意,您應該檢查是否k < len(lines) - 1
訪問lines[k + 1]
之前。
上述方法以及您的原始方法要求將整個文件預先加載到內存中。如果你想節省一些內存,你可以讓你的循環讀取遞增文件中的行:
def iter_lines(f):
"""Iterate over lines in f, providing the current and next line."""
it = iter(f)
this_line = None
for this_line in it:
break # only get first line
else:
return # no lines in the file
for next_line in it:
yield this_line, next_line
this_line = next_line
yield this_line, None
for line, next_line in iter_lines(f):
# line: current line
# next_line: next line, or None if at the last line
你太棒了。 現在一切正常。 非常感謝 – user3205790
待辦事項你的意思是你想打印第1,2行;然後2,3;然後是3,4,還是隻打印2組(即前1,2;然後3,4;然後5,6)? –