3

我正在尝试找到一种方法来检测是否为 gphoto2 找到了相机。

我已经在 gphoto2 论坛上发帖,但我想我也会在这里尝试。可以发出命令 gphoto2 --auto-detect,它会列出检测到的相机。

我正在运行一个大型 python 脚本,该脚本曾调用 gphoto2 拍照并下载图像。我想找到一个可以放入 IF 循环的语句,如果检测到相机,则只有在进入循环后才会发出拍照和下载图像命令。

4

1 回答 1

1

快速谷歌揭示了 gphoto2 http://magiclantern.wikia.com/wiki/Remote_control_with_PTP_and_Python的 python 绑定。

其他变体是调用控制台命令,即

from subprocess import call
call(["gphoto2", "--auto-detect"])

在您放弃之前,您将等待相机检测到多长时间,这取决于您。

如果您要使用循环,请记住放入一些 sleep 命令。

timeout = time.time() + 60
detected = False
while time.time() < timeout:
    if is_device_available():
        detected = True
        break
    # maybe show some feedback why he has to wait
    time.sleep(1)
if not detected:
    raise Exception('Camera device not detected')
于 2013-03-25T18:08:53.327 回答