我有一个文本文件如下:
GROSS WE GHT
MARKS AND NUMBERS:
PCS:
(KILO):
POW- 40162463
PAF. 128993.1
BOM
1 USTER QUANTUM 3
1.10
VIA MUMBAI
AIRPORT/INDIA
CO210044158在这里,我想要的输出是使用regex和python打印"weight= 1.10kg“。
import re
with open('file_new1.txt') as fd:
for line in fd:
match = re.search(r'KILO', line)
if match:
print('found')我在上面的文本文件中做了下面的代码来匹配KILO。我的问题是,在找到字符串'KILO‘之后,如何匹配数字1.10?请注意:
( 1) 1.10是样本权重,它也可以有值2322.00或其他整数值
( 2) 1.10总是发生在KILO之后,出现在新的行上。
( 3)字符串的值可以是KILO或KG。
发布于 2018-12-21 14:31:33
下面的循环循环文件,直到它看到一行包含KILO或KG。它尝试将该行之后的每一行转换为浮点数,并在成功时返回该浮点数。
def get_weight(fp):
next(line for line in fp if 'KILO' in line or 'KG' in line)
for line in fp:
try:
return float(line)
except ValueError:
continue
raise ValueError("No numeric line after 'KILO'")
with open('file_new1.txt') as fd:
print(get_weight(fd))
# 1.1对KILO或KG的搜索是非常基本的,并且容易出现错误。如果您知道它总是以其他特征出现(例如,用圆括号括起来),则可能需要将这些特征包括在搜索中。
https://stackoverflow.com/questions/53886238
复制相似问题