Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:遍历目录并将结果写入单独的txt文件_Python_Loops_Pdf_Glob_Python Tesseract - Fatal编程技术网

Python:遍历目录并将结果写入单独的txt文件

Python:遍历目录并将结果写入单独的txt文件,python,loops,pdf,glob,python-tesseract,Python,Loops,Pdf,Glob,Python Tesseract,我正在尝试遍历pdf文件目录。我首先将所有PDF文件转换为jpeg格式,最后转换为txt格式。我已经能够遍历PDF目录并将每个jpeg文件写入一个txt文件,但我真正需要的是每个PDF都有一个单独的txt文件。我理解pdf的每一页都被转换成JPEG格式,然后写入文本文件的问题。如果有2个PDF,我想2个txt文件。下面是到目前为止我的代码。谢谢你的帮助。 从PIL导入图像 import pytesseract import sys from pdf2image import convert_

我正在尝试遍历pdf文件目录。我首先将所有PDF文件转换为jpeg格式,最后转换为txt格式。我已经能够遍历PDF目录并将每个jpeg文件写入一个txt文件,但我真正需要的是每个PDF都有一个单独的txt文件。我理解pdf的每一页都被转换成JPEG格式,然后写入文本文件的问题。如果有2个PDF,我想2个txt文件。下面是到目前为止我的代码。谢谢你的帮助。 从PIL导入图像

import pytesseract 
import sys 
from pdf2image import convert_from_path 
import os 
import cv2
import glob

for filepath in glob.iglob("path/*.pdf"):
    PDF_file = filepath
  
    pages = convert_from_path(PDF_file, 500) 
  
    image_counter = 1
  
    for page in pages: 
  
        filename = "page_"+str(image_counter)+".jpg"
      
        page.save(filename, 'JPEG') 
  
        image_counter = image_counter + 1
  
    filelimit = image_counter-1
  
    outfile = "out_text.txt"
  
    f = open(outfile, "a") 
  
    for i in range(1, filelimit + 1): 
  
        filename = "page_"+str(i)+".jpg"
          
        text = str(((pytesseract.image_to_string(Image.open(filename))))) 
  
        text = text.replace('-\n', '')     
  
        f.write(text) 
  
    f.close() 

如果您希望在不同PDF页面的单独文本文件中输出。然后,您应该为每个pdf页面以不同的名称打开文件。像这样:

for i in range(1, filelimit + 1): 
    outfile = "out_text_"+ str(i) +".txt"
    f = open(outfile, "a") 
    filename = "page_"+str(i)+".jpg"
    text = str(((pytesseract.image_to_string(Image.open(filename))))) 
    text = text.replace('-\n', '')     
    f.write(text) 
    f.close() 

谢谢这接近我想要的,但不完全是。我不希望每个页面都写成文本,但如果我有两个PDF,例如,我想要两个txt文件。我知道这可能很困难,因为PDF的每一页实际上都被分成了JPEG格式。