0

我有一个搜索文件的python脚本:

这是输入文本文件的示例:

String A 1
String B 1
String B 2
String B 3
String A 2
String B 4

它在字符串 A 中存储一个数值,然后对字符串 B 的每个片段的存在进行一些处理,其中每个片段都是不同的数字

y=0
while y < len(InFileStr):
    if "String A" in InFileStr[y]:
        StringA = int(InFileStr[y].split("")[2])
    elif "String B" in InFileStr[y]):
        print "String B" + int(InFileStr[y].split("")[2])"\n"
    y+=1

这个“应该”产生:

String B 1
String B 2
String B 3
String B 4

其中 StringA =2 因为它被覆盖了

但是,无法弄清楚如何打印

String B 1
String B 4
4

2 回答 2

1

只是试图解释您要查找的内容,似乎您只是想将最接近的 A 弦与 B 弦配对。在这种情况下,您只需要一个变量来跟踪最后一个 A 字符串,这样您就知道可以在 B 字符串上执行。如果是这种情况,下面的代码应该对你有用。

lastLineStraingA = False

for line in infile.readlines():
    if "StringA" in line:
        lastLineStringA = True
        storeValueInLine(line)
        continue
    elif ("StringB" in line) and (True == lastLineStringA):
        process(line)

    lastLineStringA = False
于 2013-02-21T14:16:35.907 回答
0

看看这是否对你有帮助

while y < len(InFileStr):
    if "String A" in InFileStr[y]:
        flag = True    
        storevalueInLine()
    elif "String B" in InFileStr[y]):
        if flag:
            process(StringB)
            flag = False
    y+=1
于 2013-02-21T14:17:20.690 回答