Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 3.x 将pdf文件页面转换为图像-魔杖_Python 3.x_Ocr - Fatal编程技术网

Python 3.x 将pdf文件页面转换为图像-魔杖

Python 3.x 将pdf文件页面转换为图像-魔杖,python-3.x,ocr,Python 3.x,Ocr,初学者在此: 当我只对一个pdf使用它时,我的代码运行良好,但只要我添加一个for循环,代码仍会运行,但它只是在多页pdf中转换pdf的第一页,而不是全部 例如,如果我的pdf是xyz.pdf,有两个页面,它会将这两个页面转换为jpg并单独输出。但只要我运行pdf xyz和abc的代码,它就会转换这两个pdf的第一页 我错过了什么 from wand.image import Image as wi for pdf_file in os.listdir(pdf_dir):

初学者在此:

当我只对一个pdf使用它时,我的代码运行良好,但只要我添加一个for循环,代码仍会运行,但它只是在多页pdf中转换pdf的第一页,而不是全部

例如,如果我的pdf是xyz.pdf,有两个页面,它会将这两个页面转换为jpg并单独输出。但只要我运行pdf xyz和abc的代码,它就会转换这两个pdf的第一页

我错过了什么

from wand.image import Image as wi

for pdf_file in os.listdir(pdf_dir):                               
  if pdf_file.endswith(".pdf"):
   pdf = wi(filename= os.path.join(pdf_dir, pdf_file), resolution=300)
   pdfimage = pdf.convert("jpeg")
   i=1
   for img in pdfimage.sequence:
     page = wi(image=img)
     page.save(filename=os.path.join(pdf_dir, str(pdf_file[:-4] +".jpg")))
     i +=1
为我工作:

def convert_pdffilename,输出路径,分辨率=150: 所有页面=wifilename=文件名,分辨率=分辨率 对于i,枚举所有_页面中的页面。顺序: 使用wipage作为img: image\u filename=os.path.splitextos.path.basenamefilename[0] image_filename='{}-{}.jpg'.formatimage_filename,i image\u filename=os.path.joinoutput\u路径,image\u文件名 img.savefilename=image\u文件名 对于os.listdirpdf\u目录中的pdf\u文件: 如果pdf_file.endswith.pdf: 转换\u pdfos.path.joinpdf\u目录、pdf\u文件、pdf\u目录
你能解释一下我的代码中遗漏了什么吗?我也不想创建一个函数。如果不创建一个函数,它就不能完成吗?我认为缺少的部分是所有页面的顺序。并确保它可以直接完成,而无需函数。jsut复制粘贴for循环中的函数内容将起作用