Python在文件中打印包含大于“x”的数字的行

时间:2013-12-04 03:09:43

标签: python-2.7

我是Python的新手,我有一个脚本,使用python打印包含9的文件中的所有行:

    #!/usr/bin/env phyton

    import re

    testFile = open("test.txt", "r")

    for line in testFile:

        if re.findall("\\b9\\b", line):

            print line

现在,如何打印包含大于9的数字的所有行?

的test.txt:

number1 9

number2 10

number3 5

number4 6

number5 15

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式分组:

for line in testFile:
    m = re.search(r"\b(\d+)\b", line)
    if m is not None and int(m.group(1)) >= 9:
        print line

(\d+)将正则表达式中该部分匹配的文本提取到m.group(1)。然后int()将其转换为整数并与9进行比较。

这将在每行中提取数字的第一个实例。如果您想搜索一行中的所有数字,则需要使用re.finditer()之类的内容与上述内容相结合。

答案 1 :(得分:0)

如果有任何以空格分隔的数字大于9,则打印该行。

testFile = open("test.txt", "r")

for line in testFile:
    for word in line.split():
        try:
            if int(word) > 9:
                print line
                break
        except ValueError:
            pass

或者,对于您的示例

testFile = open("test.txt", "r")

for line in testFile:
    if int(line.split()[1]) > 9:
        print line