2012-12-29 2 views
0

저는 여기서 꽤 많은 데이터 집약적 인 알고리즘을 연구하고 있으며, 속도가 최우선 과제입니다. 기본적으로 매우 큰 문자열로 작업하는 것이 포함됩니다. 너무 많은 세부 사항에 들어가기없이,이 코드 줄없이 눈 깜짝 할 사이에 작동 : 나는 유니 코드로 각 문자열을 인코딩하지 않는 경우에 발생파이썬 인코딩이 내 응용 프로그램을 정말로 늦추고 있습니다.

html = unicode(strip_tags(html_source), errors='ignore') 
html2 = unicode(strip_tags(html_source2), errors='ignore') 

문제점은 내가 무서운 얻을 수 있습니다 :

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5747: ordinal not in range(128) 

이 프로세스를 간소화하기 위해 할 수있는 일이 있습니까? 아스키 범위에없는 작은 비트의 데이터는 나에게 너무 중요하지 않습니다. 어쨌든 전체 문자열을 인코딩하지 않고 오류를 모두 무시할 수 있습니까?

대단히 감사합니다! 당신은 .decode() 모든 비 ASCII 문자를 제거 할 수

+2

당신은'your_string.decode 사용할 수 있습니다 ('아스키'을 '무시') '및 스트립 ASCII 문자가 아닌 모든 문자를 출력합니다. – Blender

+0

와우. 나는 15 초 전에 똑똑하지. 고마워요! 그 대답을 게시 할 수 있으면 언제든지 확인해 보겠습니다. – suitegamer

+0

실제로 성능이 향상됩니까? – Blender

답변

2

(내가 현재 사용하고 python2.7.3) :

your_string.decode('ascii', errors='ignore') 
관련 문제