如何从书面文件中删除“u”字符?

时间:2015-02-27 04:16:10

标签: python unicode

我使用以下代码将列表打印到文件中。

for i in range(len(testing_data)):
    predicted_tags = tagger2.tag(testing_data[i])
    f.write(str(i)+"\t"+str(unicode(predicted_tags))+"\t"+
            str(unicode(testing_data[i]))+"\n")
f.close()

当数据写入文件时,我得到u个字符。例如:

0   [((u'The', u'DT'), 'NN'), ((u'Czech', u'JJ'), 'NN'), ((u'dam', u'NN'), 'NN'), ((u'ca', u'MD'), 'NN'), ((u"n't", u'RB'), 'NN'), ((u'be', u'VB'), 'NN'), ((u'operated', u'VBN'), 'NN'), ((u'*-69', u'-NONE-'), 'NN'), ((u'solely', u'RB'), 'NN'), ((u'at', u'IN'), 'NN'), ((u'peak', u'NN')]

如何摆脱u字符?

2 个答案:

答案 0 :(得分:0)

试试这个:

f.write(str(i)+"\t"+predicted_tags.encode('utf-8')+"\t"+testing_data[i].encode('utf-8')+"\n")

答案 1 :(得分:0)

您可以在第一部分格式化predicted_tags,如下所示:

from operator import methodcaller
utf8 = methodcaller('encode', 'utf-8')

for i in range(len(testing_data)):
    predicted_tags = tagger2.tag(testing_data[i])
    f.write(str(i)+"\t"+
            '[{}]'.format(', '.join('(({!r}, {!r}), {!r})'.format(
                                utf8(tag[0][0]), utf8(tag[0][1]), utf8(tag[1]))
                                    for tag in predicted_tags)))

以及第二个testing_data[i]之后的部分中'\t'的类似内容。