为了简化示例,我已经消除了一些嵌套循环。
我使用fileinput
逐行遍历一个文件。如果行满足某个条件,我希望它用“”替换所有将来的行,直到它再次满足该条件
import re
import fileinput
with fileinput.FileInput("survey.qsf", inplace=True, backup='.bak') as file:
for line in file:
if re.match(r'l'+datamap[i][2]+'.*$',line)!=None:
line=re.sub(r'.*$','',line)
while re.match(r'lQID\d*$',line)==None:
line=re.sub(r'.*$','',line)
next(line)
我使用“next(line)”作为占位符,因为我不知道如何迭代到下一行而不中断内部循环
我希望能够遍历这些行:
lQID44
xyz
xyz
lQID45
输出为:
[blank line]
[blank line]
[blank line]
lQID45
谢谢
next
将迭代器作为其参数另外,不需要使用
re.sub
将整行替换为空字符串line = ''
就足够了(另外,分配给
line
不会对实际文件进行更改inplace=True
只是意味着您可以写入到file
以及从中读取,但是您必须使用print
或file.write
显式写入文件。)相关问题 更多 >
编程相关推荐