从文本文件读取的行中提取值

extract value from line read from text file

我想使用此代码从文件读取的行中提取带宽值

  try:
        s1 = open(argv[1], "r")
  except IOError:
        print("server1: fopen");
        sys.exit(-1); 

 lines1 = s1.readlines()
 line1 = lines1[c]
 print line1
 f1 = re.split('.Bytes.*', line1)
 print f1

该行包含这个表达式

[  4]  0.0- 1.0 sec   218 KBytes  1.79 Mbits/sec

print f1

给出这个值

['[  4]  0.0- 1.0 sec   218 ', '\n']

我想读取最后一个带有 M 字母的数字,然后将数字计算为

if M
  B = 1.79*1000000
else if K
  B = 1.79*1000

并且B必须是浮点数

如何提取最后一个值?

你也可以不用正则表达式来做到这一点。

splitted = filter(None, line1.split())
speed = float(splitted[-2])
unit = splitted[-1]
if "M" in unit:
    B = speed*1000000
else if "K" in unit
    B = speed*1000

告诉我它是如何工作的 -- 我还没有测试过。