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

时间:2018-05-07 00:00:54

标签: python string regular-language

我想使用此代码

从文件读取行中提取带宽值
  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必须是浮点数

如何提取最后一个值?

1 个答案:

答案 0 :(得分:1)

你可以在没有正则表达式的情况下这样做。

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

让我知道它是如何工作的 - 我还没有测试过它。