2014-10-28 2 views
0

xlrd를 사용하여 python3에 엑셀 파일을로드하고 있습니다. 기본적으로 스프레드 시트의 텍스트 줄입니다. 이 줄 중 일부는 따옴표입니다. 예를 들어 한 줄은 다음과 같습니다.파이썬 문자열에서 이상한 큰 따옴표 (엑셀 파일에서) 제거하기

그녀는 "제 이름은 제니퍼입니다."라고 말했습니다.

파이썬으로 읽어서 문자열로 만들 때, 큰 따옴표는 따옴표로 묶여있는 이상한 큰 따옴표 문자로 읽혀집니다. 나는 그 길을 따라 어딘가에 있다고 가정하고 있는데, 파이썬은 어떤 인코딩 문제로 인해 실제 큰 따옴표가 아닌 일부 외국 문자로 문자를 읽습니다. 그래서 위의 예제에서, "text"로 그 라인을 지정하면, 다음과 같은 것을 갖게 될 것입니다. (실제로는 라인을 타이핑하지 않았기 때문에 정확하지 않습니다. 그래서 "텍스트"가 이미 미리 지정되었다고 상상해보십시오) :

text = 'She said, “My name is Jennifer.”' 
text[10] == '"' 

두 번째 줄은 일반 큰 따옴표 문자로 인식되지 않으므로 False로 출력됩니다. 나는 그것이 차이를 만드는 경우 맥 터미널에서 일하고있다.

내 질문 : 1. 이상한 큰 따옴표를 쉽게 제거 할 수있는 방법이 있습니까? 2. 파일을 읽어 파이썬이 이중 따옴표로 인식하도록하는 방법이 있습니까?

+1

유니 코드 :'''는 U + 201C이고''는'U + 201D '입니다. U + 0022 인'''로 대체해야합니다. –

답변

2

어디 선가 길을 따라, 파이썬은 일부 외국 문자로 문자로 읽을 수 있으리라 믿고있어

예; 그것은 파일 데이터가 실제로 나타내는 것이기 때문에 그걸 읽었습니다.

인코딩 문제 등으로 인해 실제 큰 따옴표가 아닌.

인코딩에는 문제가 없습니다. 실제 문자는 "실제 큰 따옴표"가 아닙니다.

이상한 큰 따옴표를 쉽게 제거 할 수있는 방법이 있습니까?

평소처럼 .replace 문자열을 사용하여 "실제 큰 따옴표"또는 아무 것도 사용하지 않을 수 있습니다.

파일을 읽을 때 파이썬이 이중 따옴표로 인식되도록하는 방법이 있습니까?

당신이 그들을 찾고 있다면, 당신은 그들을 실제로있는 캐릭터와 비교할 수 있습니다.

주석에 언급 된대로 대부분 U+201C LEFT DOUBLE QUOTATION MARKU+201D RIGHT DOUBLE QUOTATION MARK 일 가능성이 큽니다. 그것들은 여는 따옴표와 닫는 따옴표가 서로 다른 방향으로 커브로 보일 수있게하기 위해 사용됩니다. 보통 꽤 활판 인쇄가 가능합니다 (프로그래머에게는 더 편리 할 "을 사용하는 것과 반대).당신은 따라서, 유니 코드 이스케이프 파이썬에서 그들을 대표 :

text[10] == '\u201c' 

또한 직접 파이썬 명령 줄에서 text[10] 요구에 의해,이 정보를 원하시면 파이썬을 요청했습니다 수 (즉, 평가 및 것이다 당신에게 표현을 보여줍니다) , 또는 명시 적으로 예 : print(repr(text[10])).