【发布时间】:2019-02-12 04:48:23
【问题描述】:
我有一个问题,我需要将 pdf 文档转换为 OCR pdf 文档,就像 Adobe Acrobat 的工作方式一样。我尝试过使用 ocrmypdf 模块,但不知何故它不起作用。我正在使用python 2.7。任何其他模块也值得赞赏。
import logging
import os
import subprocess
import sys
import time
import shutil
path="D:\Nikhil Scraping\Pdf all processing"
for filenames in os.listdir(path):
print (filenames)
filename=filenames.split('.')[0]
print (filename)
input_path=os.path.join(path,filenames)
outputfile=filename+"_OCR.pdf"
cmd=["ocrmypdf","--output-type", "pdf", input_path, outputfile]
logging.info(cmd)
proc=subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
result = proc.stdout.read()
错误显示:
1-9-US 118137380VP1.pdf
1-9-US 118137380VP1
Traceback (most recent call last):
File "D:\Nikhil Scraping\Pdf all processing\pdf_ocr_working.py", line 19, in <module>
proc=subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
File "C:\Python27\Lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\Lib\subprocess.py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
虽然我在 python 3.7 中使用相同的代码,但它工作正常,但没有生成输出文件。
它在 mac OS 中也能成功运行,我不知道为什么 windows 会显示这个错误。
【问题讨论】:
-
也许您正面临这个问题,因为您的文件夹名称中有空格。尝试另一个没有空间的文件夹。
-
不,我已经尝试将它推送到另一个没有空格的文件夹,即使它显示相同的错误
-
尝试将路径从
path="D:\Nikhil Scraping\Pdf all processing"更改为path="D:\\NikhilScraping\\Pdfallprocessing"格式(转义空格和双 \\ 用于路径)或path=r"D:\Nikhil Scraping\Pdf all processing"(原始字符串), -
@dkb 不,即使这样也行不通。据我所知,路径变量没有问题,问题出在 ocrmypdf 模块中,如果路径有问题,那么它甚至不会进入 for 循环,它可能会显示类似这样的错误
for filenames in os.listdir(path): WindowsError: [Error 3] The system cannot find the path specified: