Python: вызову upper() для слов, содержащих нелатинские символы

У меня есть файл со словами в строках, ex

А
б
Вв
Гг

(нелатинские буквы) и т. д.

Я хочу получить это:

А
Б
ВВ
ГГ

пока после запуска кода не вижу изменений

вот код:

f = open('sample.csv')
for line in f:
    for sampleword in line.split():
        print sampleword.upper()

Нелатинские символы не прописываются. В чем проблема?

1 ответ

Решение для заглавных букв нелатинских букв в Python 2 заключается в использовании строк Unicode:

words = [u'łuk', u'ćma']
assert [w.upper() for w in words] == [u'ŁUK', u'ĆMA']

Чтобы прочитать юникод из файла, вы можете обратиться к официальному руководству по Python:

Поэтому чтение Unicode из файла очень просто:

import codecs
f = codecs.open('unicode.rst', encoding='utf-8')
for line in f:
    print repr(line)
Другие вопросы по тегам