0

我正在创建一个简单的 python 脚本,它使用 gphoto2 从我的 USB 连接相机和 feh 拍摄照片来显示照片。

当我运行程序时,gphoto2 将捕获照片,feh 将打开它,但我想返回命令行拍摄另一张照片,而无需手动关闭图像窗口。

有什么方法可以让我从命令行连续运行程序而不必关闭图像窗口?

class PhotoBooth(object):

    def capture_photo(self):
            filename = join(out, '%s.jpg' % str(uuid4()))
            subprocess.call('gphoto2 --capture-image-and-download --filename="%s"' % filename, shell=True)
            return filename

    def print_photo(self, filename):
            subprocess.Popen('feh --g 640x480 ' + filename, shell=True)


photobooth = PhotoBooth()

try:
    while True:
            raw_input("Press enter to capture photo")
            filename = photobooth.capture_photo()
            photobooth.print_photo(filename)

    except KeyboardInterrupt:
            print "\nExiting..."
4

2 回答 2

0

如果您在后台生成 feh 进程,您应该能够在一个简单的循环中完成所有操作。请参阅 StackOverflow 上的此问题以了解如何执行此操作:

如何在 Python 中启动后台进程?

于 2013-09-16T17:02:43.140 回答
0

迈克尔提供的链接为您提供了答案。如果该方法不起作用,您可以尝试在 feh 命令末尾使用 &。在 linux 的命令行中 & 在一个命令的末尾会在后台运行一个命令。

于 2013-09-25T20:10:50.340 回答