我有一个包含多行的文本文件,想要查找哪些行的值大于85%。
'workdata worka worka1 size 84% total'
'workdata workb workb1 size 89% total'
'workdata workc workc1 size 63% total'
'workdata workd workd1 size 94% total'
有人可以告诉我如何在第五栏中获得85%或更多的句子吗?
答案 0 :(得分:1)
您需要首先提取百分比,然后根据该值过滤行。
import re
def extract_percent(line):
# doing extraction
try:
return int(re.findall('[0-9]+%', line)[0][:-1])
except:
return 0
print [line for line in lines if extract_percent(line) > 85]
如果未找到任何内容,则返回0。
否则返回%
之前的数字。
如果字符串中有多个百分比数字,则返回第一个数字。
如果百分比可以浮动,它会变得有点棘手,
但它也不是那么难。只需使用正则表达式[0-9]+%
。
如果位置固定(第五列),您可以这样重写extract_percent
函数:
def extract_percent(line):
try:
return int(line.split()[4][:-1])
except:
return 0
答案 1 :(得分:0)
如果您知道百分比将始终位于第5列,则只需拆分空格中的每一行,删除百分号,然后将其转换为浮点数。像这样:
lines = open("fileName", "r").read().splitlines()
for row in lines:
if float(row.split()[4].replace("%",""))>85:
print(row)