2016-10-21 8 views
0

私はpdfファイルをtxtに変換したいと思います。ここに私のコードです:Python pdf to txt

testFile = urllib.URLopener() 
testFile.retrieve("http://url_to_download" , "/Users/gabor_dev/Desktop/pdf_tst/tst.pdf") 

content = "" 

pdf = pyPdf.PdfFileReader(file("/Users/gabor_dev/Desktop/pdf_tst/tst.pdf", "rb")) 

for i in range(0, pdf.getNumPages()): 
    f = open("/Users/gabor_dev/Desktop/pdf_tst/xxx.txt",'a') 
    content= pdf.getPage(i).extractText() + "\n" 
    c=content.split() 
    for a in c: 
     f.write(" ") 
     f.write(a) 
     f.write('\n') 
     f.close() 

私のPDFファイルがダウンロードされますが、私は私のTXTに変換しようとしたときにのみ、PDFの最初の言葉は、私のtxtファイルに現れ、その後、私はこのエラーを取得する:

Traceback (most recent call last): 
    File "/Users/gabor_dev/PycharmProjects/text_class_tst/textClass.py", line 26, in <module> 
    f.write(" ") 
ValueError: I/O operation on closed file 

私は間違っていますか? ありがとうございました!

+1

まあの作品は、 '' f.close()を使用して最初の単語を書いた後、ファイルを閉じます。あなたが最後にファイルを閉じるだけなら、あなたのコードは残りのデータを書き込むことができるはずです... –

+0

ohh、ありがとう! :)私のコードインデントは良くありませんでした..ありがとう! :) – solarenqu

答えて

0

より良い使用with open

import urllib 
import pyPdf 

testFile = urllib.URLopener() 
testFile.retrieve("http://www.pdf995.com/samples/pdf.pdf" , "./tst.pdf") 

content = "" 

pdf = pyPdf.PdfFileReader(file("./tst.pdf", "rb")) 


with open("./xxx.txt",'a') as f : 
    for i in range(0, pdf.getNumPages()): 
     content= pdf.getPage(i).extractText() + "\n" 
     c=content.split() 
     for a in c: 
      f.write(" ") 
      f.write(a) 
      f.write('\n') 

検査済みと