SORU
27 AĞUSTOS 2009, PERŞEMBE


Nasıl python yorumlayıcısı yapmak doğru ASCII olmayan karakterler string işlemleri için ele?

Çok benzeyen bir dize var:

6 918 417 712

Bu dize kesmek için kesin şekilde Python anladığım kadarıyla () sadece bir dize değişkeni s gelir . denir

s.replace('Â ', '')

Bu hile yapmak gerekir. Ama tabii ki non-ASCII karakter dosya blabla.py '\xc2' kodlanmış olmadığını yakınıyor.

Ben oldukça farklı kodlamalar arasında geçiş yapmak için nasıl anlamak olabilir.

Burada kod var. gerçekten sadece yukarıdaki gibi aynı, ama şimdi ödeniyor. Dosyayı Not Defteri'nde UTF-8 olarak kaydedilir ve aşağıdaki Başlığı vardır:

#!/usr/bin/python2.4
# -*- coding: utf-8 -*-

Kod:

f = urllib.urlopen(url)

soup = BeautifulSoup(f)

s = soup.find('div', {'id':'main_count'})

#making a print 's' here goes well. it shows 6Â 918Â 417Â 712

s.replace('Â ','')

save_main_count(s)

s.replace... daha fazla oluyor

CEVAP
27 AĞUSTOS 2009, PERŞEMBE


def removeNonAscii(s): return "".join(filter(lambda x: ord(x)<128, s))

edit: benim ilk dürtü her zaman bir filtre kullanmaktır, ama jeneratör deyim daha hızlı ve daha kısa

def removeNonAscii(s): return "".join(i for i in s if ord(i)<128)

Bu UTF-8 ile çalışmak için kodlama multi-byte karakter tüm bayt en yüksek bit 1 olarak ayarlanmış çünkü) garantili olduğunu unutmayın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FPSRussia

    FPSRussia

    19 NİSAN 2010
  • RinconDynamic

    RinconDynami

    1 EKİM 2011
  • TechRax

    TechRax

    21 EYLÜL 2009