-2

可能重复:
在 Python 中从文件中读取字符

我想从文件中删除所有特殊字符的输入字符串,实际字母除外(即使是西里尔字母也不应该被删除)。我找到的解决方案手动将字符串声明为 unicode 和带有re.UNICODE标志的模式,以便检测到来自不同语言的实际字母。

# -*- coding: utf-8 -*-
import re
pattern = re.compile("[^\w\d]",re.UNICODE)
n_uni = 'ähm whatßs äüöp ×äØü'
uni = u'ähm whatßs äüöp ×äØü'
words = pattern.split(n_uni) #doesn't work
u_words = pattern.split(uni) #works

因此,如果我直接在源代码中编写字符串并手动将其定义为 Unicode,它会给我所需的输出,而非 Unicode 字符串给我的只是垃圾:

"ähm whatßs äüöp äØü" -> unicode
"hm what s ü p ü" -> non-unicode even with some invalid characters

我现在的问题是如何将来自文件的输入定义为 Unicode?

4

1 回答 1

2

我现在的问题是如何将来自文件的输入定义为 unicode?

直接来自文档

import codecs
f = codecs.open('unicode.rst', encoding='utf-8')
for line in f:
    print repr(line)
于 2012-07-01T12:09:27.443 回答