2017-05-01 5 views
-1

私はあらゆるフォーマットのファイルをテキストに変換できるコンバータを手に入れようとしているので、処理が容易になります。私はPython textractライブラリを使用しました。ここ
はドキュメントです:https://textract.readthedocs.io/en/stable/どのように私は任意の形式のファイルをPython 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

'C Specification.pdfで行わ/ユーザ/ベータ/デスクトップ/プロジェクト'だから、あなたはunixの[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のパス名では、ディレクトリの区切り文字です。 Python文字列では、エスケープシーケンスが導入されています。パスを指定するときは、これを考慮する必要があります。

これらのいずれかをお試しください:問題は、文字列

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

である

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

\ Uは、\のU00014321`」として、8文字のUnicodeエスケープを開始します。あなたのコードでは、エスケープの後に無効な文字 's'が続きます。

すべてのバックスラッシュを複製するか、文字列の先頭にr(生の文字列を生成する)のいずれかを付ける必要があります。

+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

あなたの場合、エラーは無効なパスのためです。これを試してみて、それが動作します : 'C:\ Users \ユーザーSpecification.pdfで行わデスクトップ\プロジェクト\ベータ' "OR" :

関連する問題