0
    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"

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

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

- both c1 and c2 are True
- both "request=100" and "response=200" should fall in same line 
- if any other line also consist of "request=100" and "response=200" then that also should be counted

如果出现以下情况,结果为“失败”:

- 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"

考虑“myfile”具有以下数据:

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

在上面的文件中,result 是 Fail 因为 request 和 response 除了需要的值之外有不同的值。只有第 5 行具有正确的值,因此结果失败。

4

1 回答 1

0

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

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

除了您提到的失败条件之外,还有其他条件会失败。但你提到的两者并不相互排斥。

编辑:不等待这是错误的,从例子来看。我无法理解你的情况。也许它可以帮助您获得一个想法,如果没有,请用另一个例子阐明条件。

于 2013-03-28T07:11:31.967 回答