我有一行看起来像这样:
line ='timing [dash<try></example><try>x</trial>] -122 µm'
我想提取-122值。这就是我写的:
a = line.split("]")
b = a[1].split("x")
c= b[0].split("µm")
my_val = float(c[0].replace(" ", ""))
“μ”似乎在这里引起了问题。如果我编译它上面的代码显示错误。是否有任何想法与这些特殊角色合作?
小编辑:
我正在从某个文件中读取“行”。我使用的是python 2.7。
答案 0 :(得分:1)
在python 2.7中运行良好
>>> line ='timing [dash<try></example><try>x</trial>] -122 µm'
>>> a = line.split("]")
>>> b = a[1].split("x")
>>> c= b[0].split("µm")
>>> a
['timing [dash<try></example><try>x</trial>', ' -122 \xc2\xb5m']
>>> b
[' -122 \xc2\xb5m']
>>> c
[' -122 ', '']
>>> c[0].replace(" ", "")
'-122'
>>> c[0].strip()
'-122'
>>> float(c[0].replace(" ", ""))
-122.0
答案 1 :(得分:1)
我刚刚在Python 3.3中运行了你的代码。
print(my_val)
打印-122。
答案 2 :(得分:1)
查看Python + Unicode教程。首先,如果您有任何unicode字符,请使用例如对代码中的每个字符串使用u'...'是安全的。
line = u'timing....'
c= b[0].split(u"µm")
答案 3 :(得分:0)
import re
line ="asdfasd;l lakfdalskd -122 asfdsd"
print re.findall(r'-\d+', line)