查找Python中搜索的字符串的行号

查找Python中搜索的字符串的行号,python,string,search,Python,String,Search,在上述代码中,不存在检查行号以使request=100和response=200落在同一行中的情况。我需要的 另外,我只想在满足以下条件时将结果打印为“通过” def c1(): logfile = open("D:\myfile.txt", 'r') for num1, line in enumerate(logfile): if "request=100" in line: pri

在上述代码中,不存在检查行号以使request=100和response=200落在同一行中的情况。我需要的

另外,我只想在满足以下条件时将结果打印为“通过”

    def c1():
        logfile = open("D:\myfile.txt", 'r')
        for num1, line in enumerate(logfile):
                if "request=100" in line:
                    print num1
                    return True
        return False

    def c2():
        logfile = open("D:\myfile.txt", 'r')
        for num2, line in enumerate(logfile):
                if "response=200" in line:
                    print num2
                    return True
        return False    

    if c1() == True and c2() == True:
        print "Test Case Passed"  
    else:
        print "Test Case Failed"
如果出现以下情况,则结果为“失败”:

假设“myfile”包含以下数据:

- if any one line which consists of "request=200" and "response=200"
- if any one line which consists of "request=100" and "response=100" 
- or any case in which no line should have apart from "request=100" and "response=200"

在上面的文件中,结果是失败,因为请求和响应的值与所需值不同。只有第5行具有正确的值,因此结果失败。

如果我理解正确,您应该将两个条件放在一个循环中,并保持循环,直到到达该行的末尾,或者遇到另一行具有该条件:

request=100 XXXXXXXXXXXXXXXXXXXXXXXXXXXX \n
XXXXXXXXXXXXXXXX response=200 XXXXXXXXX \n
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \n
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \n
XXXX request=100 XXXXX response=200 XXXXXXXXXXX \n
XXXXXXX request=200 XXXXXX response=100 XXXXXXX \n
XXXXXXXX request=100 XXXX response=100"         \n
除您提到的失败条件外,还有其他失败条件。但你提到的这两个并不是相互排斥的

编辑:不,等等,从示例判断,这是错误的。我无法理解你的处境。也许这有助于你获得一个想法,如果没有,请用另一个例子来说明条件

request=100 XXXXXXXXXXXXXXXXXXXXXXXXXXXX \n
XXXXXXXXXXXXXXXX response=200 XXXXXXXXX \n
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \n
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \n
XXXX request=100 XXXXX response=200 XXXXXXXXXXX \n
XXXXXXX request=200 XXXXXX response=100 XXXXXXX \n
XXXXXXXX request=100 XXXX response=100"         \n
def are_they_on_the_same_line():
    logfile = open("D:\myfile.txt", 'r')
    intermediate_result = False
    for num1, line in enumerate(logfile):
            if "request=100" in line and "response=200":
                if intermediate_result == True:
                    return False
                intermediate_result = True
    return intermediate_result