【发布时间】:2021-03-04 18:04:32
【问题描述】:
我正在尝试在文件中查找特定字符串(假设这是条件 1.1),如果找到该字符串,我需要在条件 1.1 字符串之后找到另一个字符串(假设这是条件 1.2)。如果条件 1.2 存在,我需要回到条件 1.1 加一行。并从那里再次读取,以防我找到条件 2.1、3.1、4.1 的字符串。
假设文件是这样的
line 1
line 2
condition 1.1
line 4
line 5
line 6
line 7
condition 2.1
line 9
line 10
line 11
condition 2.2
line 12
line 13
condition 1.2
到目前为止,我所做的是使用 f.readline 读取文件行并检查条件 1.1 和 1.2,而不考虑检查条件 2.1 和 2.2。
如何实现这种情况?我想过像 DFS 这样的东西,但我认为打开的 python 文件没有readline before 功能
这是我的伪代码
def beta(f, line):
if("STRING A Condition 1.1" in line):
while True:
if("STRING B Condition 1.2" in line):
return 1
if(line is none):
return None
line = f.readline() # This is my code problem. it continues the f.readline of the caller.
def alpha():
with open(file_name, 'r') as f:
line = f.readline()
while line:
value = beta(f, line)
if(value is not None):
print("dummy yes")
line = f.readline()
if(line is None):
break
【问题讨论】:
-
你能改写“如果存在第二个条件,我需要回到条件 1 加上一行并从那里再次读取,以防我找到条件 2.1、3.1、4.1 的字符串。”?尽量使所需的功能尽可能清晰。
-
好的,编辑成1.1和1.2
标签: python python-3.x algorithm python-2.7 file