拆分具有特殊字符的线条

时间:2014-05-29 09:09:40

标签: python

我有一行看起来像这样:

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。

4 个答案:

答案 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)