2012-07-01 53 views
-2

可能重复:
Character reading from file in Python如何定义从Unicode文件读取文件的字符串?

我想从所有特殊字符的文件带上的输入字符串,除了实际的字母(甚至西里尔字母不应该被剥夺)。我找到的解决方案手动将该字符串声明为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?

+2

说真的。在Google上搜索“python read unicode file”会为您提供相关文档作为第一次打击。和重复的StackOverflow问题打#2。 – Tomalak

回答

2

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

直接从the docs

import codecs 
f = codecs.open('unicode.rst', encoding='utf-8') 
for line in f: 
    print repr(line) 
+0

现在工作是我的设置有问题。 – Zibi92

相关问题