我有一个文本文件,如下所示:
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
在这里,我想要的输出使用正则表达式和python打印“ weight = 1.10 Kilos”。
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
答案 0 :(得分:3)
以下内容循环遍历文件,直到看到包含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
的搜索是非常基本的,并且容易产生误报。如果您知道它总是带有其他特征(例如,用括号括起来),则可能需要在搜索中包括这些特征。