我目前正在从Python调用“转换” -cygwin方法。它应该将pdf转换为png文件。但是,如果我调用convert方法并直接尝试访问生成的png,则会出现一个问题,因为显然png尚未完全实现。
我的代码:
import os
import cv2
cmd = 'set PATH="C:/cygwin64/bin";"%PATH%" && cd '+os.path.dirname(PDFPath)+' && run convert -density 300 '+os.path.basename(PDFPath)+' -quality 100 -alpha off '+ img_path
os.system(cmd)
img = cv2.imread(img_path,0)
如果我这样做,实际上将创建png,但是img为None,因为显然在调用imread()时图像不存在。
我也尝试过类似的方法
while not os.path.exists(img_path):
time.sleep(10)
,然后尝试imread()起作用。有没有办法在调用img_path之前确保文件确实存在?
我不想继续使用time.sleep(),因为有一点变化,即在睡眠结束时png仍未从内存中完全加载。
答案 0 :(得分:1)
您应该能够将-wait
添加为通过run
(例如run convert -wait -density ...
)运行的命令的第一个参数,以使run
等待命令完成。有关man run
命令的更多信息,请参见cygwin中的run
。