如何确保cygwin通话结束?

时间:2019-01-10 17:33:01

标签: python-3.x cygwin

我目前正在从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仍未从内存中完全加载。

1 个答案:

答案 0 :(得分:1)

您应该能够将-wait添加为通过run(例如run convert -wait -density ...)运行的命令的第一个参数,以使run等待命令完成。有关man run命令的更多信息,请参见cygwin中的run