SORU
29 EYLÜL 2008, PAZARTESİ


Dosyadan karakter okuma Python

Bir metin dosyası, bir dize "bundan hoşlanmadım".

Bir dize okudum, ancak "olur ben\xe2\x80\x98t yok böyle". \U2018 unicode gösterimi olduğunu anlıyorum"".' Kullanıyorum

f1 = open (file1, "r")
text = f1.read()

komut okuma yapmak için.

Şimdi, mümkün müdür okuma dizesinde öyle bir zaman okuma içine dize, "bunu sevmiyorum" yerine "ben don\xe2\x80\x98t gibi bu gibi bu"?

İkinci edit: bazı insanlar eşleme bu sorunu çözmek için, ama, yerleşik ANSI unicode ( veya tam tersi) bu tür dönüştürme yaptığı dönüşüm var mı gerçekten? gördüm

CEVAP
29 EYLÜL 2008, PAZARTESİ


İlan No: http://docs.python.org/howto/unicode

Bir dosyadan okuma Unicode bu nedenle basittir:

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

Aynı zamanda güncelleştirme modunda dosyaları hem okuma hem de yazma izin açmak için:

f = codecs.open('test', encoding='utf-8', mode='w ')
f.write(u'\u4500 blah blah blah\n')
f.seek(0)
print repr(f.readline()[:1])
f.close()

EDİT: Amaçlanan Amacınız sadece dosya düzgün Python ile bir dizeye okuyabilmesi için olduğunu düşünüyorum. Eğer Unicode, ASCII dize dönüştürmek için çalışıyorsanız, o zaman Unicode karakterleri mutlaka ASCII yok yok çünkü gerçekten bunu yapmak için doğrudan bir yol var.

Eğer bir ASCII dize dönüştürmek için çalışıyorsanız, aşağıdakilerden birini deneyin:

  1. Eğer sadece bu belirli bir örnek gibi birkaç özel durumlar işlemek için arıyorsanız ASCII karşılıkları ile belirli bir unicode karakter değiştirin

  2. En yakın ASCII unicodedata modülü normalize() kullanımı ve elinden geldiğince dönüştürmek için string.encode() yöntemi karşılığı (https://web.archive.org/web/20090228203858/http://techxplorer.com/2006/07/18/converting-unicode-to-ascii-using-python Ref):

    >>> teststr
    u'I don\xe2\x80\x98t like this'
    >>> unicodedata.normalize('NFKD', teststr).encode('ascii', 'ignore')
    'I donat like this'
    

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • dcigs

    dcigs

    9 EYLÜL 2006
  • GenTechPC

    GenTechPC

    1 Temmuz 2007