Python 3.x 逐行读取文件,但从某个点开始
我必须逐行读取文件,但在比赛发生后开始打印它的比赛。让我们假设匹配应该是XXX 因此,如果我们有一个包含以下内容的文件Python 3.x 逐行读取文件,但从某个点开始,python-3.x,file,Python 3.x,File,我必须逐行读取文件,但在比赛发生后开始打印它的比赛。让我们假设匹配应该是XXX 因此,如果我们有一个包含以下内容的文件 wdwdw dwdww XXX DWDM 111 它应该显示DWDM和111 我试着用下面的方法 file open('buffer.txt', 'r') for line in file: if re.search('XXX'. line): print(line) 但它只打印一行。如何强制打印其余部分?它只打印匹配行,这是正常的。试试这样:
wdwdw
dwdww
XXX
DWDM
111
它应该显示DWDM和111
我试着用下面的方法
file open('buffer.txt', 'r')
for line in file:
if re.search('XXX'. line):
print(line)
但它只打印一行。如何强制打印其余部分?它只打印匹配行,这是正常的。试试这样:
with open('buffer.txt', 'r') as f:
matched = False
for line in f:
if matched:
print(line)
if re.search('XXX', line):
matched = True
1) 不要使用正则表达式进行简单搜索。2) 用
语句打开文件。
3) 只需创建一个布尔变量,在看到所需行时告诉您:
with open('buffer.txt', 'r') as f:
start_printing = False
for line in f.readlines():
if start_printing:
print(line)
elif 'XXX' in line:
start_printing = True
file=open('buffer.txt','r')
发现=错误
对于文件中的行:
如果未找到:
如果重新搜索('XXX'。行):
找到=真
其他:
打印(行)
注意这将打印OP输出中不需要的XXX
行。它还使用re.search
,这对于搜索中的一个微不足道的,是不必要的导入。也就是说,我们都有相同的想法:p关于操作顺序的看法是正确的,但是,不管怎样,使用re
,即使在示例中看起来很琐碎,对于实际用例来说可能是需要的,例如,如果文件是带有日期的日志文件。。。