Unicode转换为Python中的原始字符

例如,当我使用


unicode_string = u"Austro\u002dHungarian_gulden"

unicode_string.encode("ascii", "ignore")

然后它将给出以下输出:'Austro-Hungarian_gulden'


但是我正在使用一个txt文件,其中包含一组数据,如下所示:


Austria\u002dHungary    Austro\u002dHungarian_gulden

Cocos_\u0028Keeling\u0029_Islands   Australian_dollar

El_Salvador Col\u00f3n_\u0028currency\u0029

Faroe_Islands   Faroese_kr\u00f3na

Georgia_\u0028country\u0029 Georgian_lari

而且,我必须使用Python中的正则表达式来处理这些数据,因此我创建了如下脚本,但是该脚本无法用字符串中的适当字符替换Unicode值。


同样地


'\u002d' has appropriate character '-'

'\u0028' has appropriate character '('

'\u0029' has appropriate character ')'

用于处理文本文件的脚本:


import re

import collections


def extract():

    filename = raw_input("Enter file Name:")

    in_file = file(filename,"r")

    out_file = file("Attribute.txt","w+")

    for line in in_file:

        values = line.split("\t")

        if values[1]:

            str1 = ""

            for list in values[1]:

                list = re.sub("[^\Da-z0-9A-Z()]","",list)

                list = list.replace('_',' ')

                out_file.write(list)

                str1 += list

            out_file.write("    ")

        if values[2]:

            str2 = ""

            for list in values[2]:

                list = re.sub("[^\Da-z0-9A-Z\n]"," ",list)

                list = list.replace('"','')

                list = list.replace('_',' ')

                out_file.write(list)

                str2 += list

        s1 = str1.lstrip()

        s1 = str1.rstrip()

        s2 = str2.lstrip()

        s2 = str2.rstrip()

        print s1+s2

给定数据的预期输出为:


Austria-Hungary Austro-Hungarian gulden

Cocos (Keeling) Islands Australian dollar

El Salvador Coln (currency)

FaroeIslands    Faroese krna

Georgia (country)   Georgian lari

我该怎么做?


鸿蒙传说
浏览 194回答 1
1回答

有只小跳蛙

使用将输入转换为Unicode decode("unicode_escape"),然后encode()将输出转换为您选择的编码。>>> r"Austro\u002dHungarian_gulden".decode("unicode_escape")u'Austro-Hungarian_gulden'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python