2017-05-01 5 views
-1

모든 형식의 파일을 텍스트로 변환 할 수있는 변환기가있어서 처리하기가 더 쉬워졌습니다. 나는 파이썬 textract 라이브러리를 사용했다.
다음은 문서입니다. https://textract.readthedocs.io/en/stable/어떤 형식의 파일을 파이썬 3.6을 사용하여 텍스트 형식으로 변환 할 수 있습니까?

pip을 사용하여 설치했으며 사용하려고했습니다. 그러나 오류가있어이를 해결하는 방법을 이해할 수 없습니다.

>>> import textract 
>>> text = textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf', method='pdfminer') 
    File "<stdin>", line 1 
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 

심지어 방법을 지정하지 않고 명령을 사용해 보았습니다.

>>> import textract 
>>> text = textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf') 
    File "<stdin>", line 1 
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 

내가이 문제를 어떻게 해결할 수 있는지 알려 주시기 바랍니다. 가능하다면 나에게 해결책을 제안하십시오. textract 대신 편리한 다른 것이 있으면 여전히 나에게 제안 할 수 있습니다. 듣고 싶습니다.

+0

: '/ 사용자/베타/데스크탑/프로젝트가 Specification.pdf으로 완료 C': "OR" 'C Specification.pdf으로 완료 \ 사용자 \ 베타 \ 바탕 화면 \ 프로젝트'를 그래서 유닉스의 [strings] (http://www.linfo.org/strings.html) 명령과 같이 파일에서 모든 문자열을 추출하고 싶습니까? – ChatterOne

답변

0

encoding='utf-8'

textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf', encoding='utf-8') 
+0

나는 그것을 작동 .. 작동하지 않습니다. 같은 오류 –

2

\ 문자가 서로 다른 상황에서 다른 것들을 의미보십시오. Windows 경로명에서 이것은 디렉토리 구분 기호입니다. 파이썬 문자열에서는 이스케이프 시퀀스를 도입합니다. 경로를 지정할 때이를 고려해야합니다.

다음 중 하나를 시도해보십시오

text = textract.process('C:\\Users\\beta\\Desktop\\Projects Done With Specification.pdf', method='pdfminer') 
text = textract.process(r'C:\Users\beta\Desktop\Projects Done With Specification.pdf', method='pdfminer') 
text = textract.process('C:/Users/beta/Desktop/Projects Done With Specification.pdf', method='pdfminer') 
+0

당신의 솔루션을 사용한 후에 이것을 얻었습니다. https://gist.github.com/JafferWilson/6f595c61f08c80081a57c527144c191b –

1

문제는 '\의 U00014321`로,

'C:\Users\beta\Desktop\Projects Done With Specification.pdf' 

의 \ U는 8 자의 유니 코드 이스케이프를 시작하는 문자열입니다. 코드에서 이스케이프 다음에 's'문자가 올 바르고 유효하지 않습니다.

모든 백 슬래시를 복제하거나 문자열에 접두어를 붙이면 원시 문자열이 생성됩니다.

+0

죄송합니다. 작동하지 않았습니다. https://gist.github.com/JafferWilson/6f595c61f08c80081a57c527144c191b –

+0

@JafferWilson 그러면 파일에 공백이있을 가능성이 있습니다. 이름. "Projects_Done_With_Specification.pdf"로 이름을 바꾸고 코드의 경로를 "C : \ Users \ beta \ Desktop \ Projects_Done_With_Specification.pdf"로 업데이트하십시오. –

+0

공백을 제거하고 프로그램을 실행하려고했습니다. 새로운 문제가 있습니다. : https://gist.github.com/JafferWilson/59e0602f62751c96aba91d7047f322ed –

0

잘못된 경로로 인해 오류가 발생했습니다. 이 시도하고 그것을 작동 :