您的位置:首页 > 编程语言 > Python开发

python半角全角转换

2014-05-08 10:21 429 查看
在工作中遇到了query分词和文本分词半全角不一致问题,在网上搜索了半天,试了好多都没搞定,最后终于搞定了,代码是网上找到的,但是忘记链接了,见谅。

python半角全角转换代码:

def strQ2B(ustring):
rstring = ""
for uchar in ustring:
inside_code=ord(uchar)
if inside_code == 12288:
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374):
inside_code -= 65248

rstring += unichr(inside_code)
return rstring

def strB2Q(ustring):
rstring = ""
for uchar in ustring:
inside_code=ord(uchar)
if inside_code == 32:
inside_code = 12288
elif inside_code >= 32 and inside_code <= 126:
inside_code += 65248

rstring += unichr(inside_code)
return rstring

在上面的代码中,输入参数必须是unicode编码的,所以在实际调用的时候,需要先进行编码转换,完成半角、全角转换后在转换为需要的编码。
在我的使用中,所有的文本输入编码都是gbk编码,所以调用的过程如下:

#半角转全角
lines = open(r'tmp','r').readlines()
for line in lines:
line = line.decode('gbk')
print strB2Q(line).encode('gbk')


全角转半角:
input = file('result')
for line in input:
line = line.strip().decode('gbk')
line = strQ2B(line).encode('gbk')

print line
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python