如何:使用特殊字符在Python中删除部分Unicode字符串

时间:2010-10-07 16:58:42

标签: python string unicode special-characters beautifulsoup

首先是一个简短的总结:

python ver:3.1 system:Linux(Ubuntu)

我正在尝试通过Python和BeautifulSoup进行一些数据检索。

不幸的是,我尝试处理的某些表包含以下文本字符串存在的单元格:

789.82±10.28

为此,我需要做两件事:

如何处理“怪异”符号,例如:± 以及如何删除包含以下内容的字符串部分:±以及此右侧的所有内容?

目前我收到如下错误:SyntaxError:文件中的非ASCII字符'\ xc2'......

感谢您的帮助

[编辑]:

# dataretriveal from html files from DETHERM
# -*- coding: utf8 -*-

import sys,os,re
from BeautifulSoup import BeautifulSoup


sys.path.insert(0, os.getcwd())

raw_data = open('download.php.html','r')
soup = BeautifulSoup(raw_data)


for numdiv in soup.findAll('div', {"id" : "sec"}):
    currenttable = numdiv.find('table',{"class" : "data"})
    if currenttable:
        numrow=0
        for row in currenttable.findAll('td', {"class" : "dataHead"}):
            numrow=numrow+1

        for col in currenttable.findAll('td'):
            col2 = ''.join(col.findAll(text=True))
            if col2.index('±'):
                col2=col2[:col2.indeindex('±')]
            print(col)
        print(numrow)
        ref=numdiv.find('a')
        niceref=''.join(ref.findAll(text=True))
        print(niceref)

现在此代码后跟错误:

UnicodeDecodeError:'ascii'编解码器无法解码位置0的字节0xc2:序数不在范围内(128)

ASCII参考从哪里弹出?

1 个答案:

答案 0 :(得分:0)

您需要在utf-8中编码Python文件。否则,这是非常微不足道的:

>>> s = '789.82 ± 10.28'
>>> s[:s.index('±')]
'789.82 '
>>> s.partition('±')
('789.82 ', '±', ' 10.28')