我对python有点新意,我想知道是否有人可以提供帮助。基本上我正在阅读文件的内容,当我找到单词" prb"我想使用next()函数检查下一行,如果它以单词" rt"开头,我想打印两行。到目前为止,我写了这段代码:
with open('/home/user/Desktop/3rdstep.txt', 'r') as f:
f.readline()
for line in f:
if "prb" in line:
try:
myword = next(f)
if "rt" in myword:
print(line.strip())
print(myword)
except:
print("pass")
这很好但唯一的问题是它会随机跳过" rt"因为我不知道的原因。任何人都可以帮忙或让别人做类似的事情吗?
由于
答案 0 :(得分:0)
您可以使用if myword.startswith("rt"):
代替if "rt" in myword:
答案 1 :(得分:0)
如果您的输入有两行,以'prb'
开头,后跟以'rt'
开头的行,则会跳过它们。唯一的例外是它们是文件中的前三行。这是因为for line in f:
读取以'prb'
开头的第一行,myword = next(f)
读取第二行。因此,在以下迭代中line
以'rt'
开头。
您可以存储前一行,然后检查两行是否匹配,而不是阅读下一行:
prev = ''
with open('/home/user/Desktop/3rdstep.txt') as f:
for line in f:
if prev.startswith('prb') and line.startswith('rt'):
print(prev.strip())
print(line)
prev = line