我是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
答案 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