从命令行运行python程序,在另一个窗口中查看结果

时间:2013-09-16 16:39:02

标签: python linux

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

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

有没有我可以连续从命令行运行程序而不必关闭图像窗口?

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..."

2 个答案:

答案 0 :(得分:0)

如果你在后台生成feh进程,你应该能够在一个简单的循环中完成所有这些。请参阅StackOverflow上的这个问题,以获取咒语:

How to start a background process in Python?

答案 1 :(得分:0)

迈克尔提供的链接为您提供答案。如果该方法不起作用,您可以尝试使用&在feh命令结束时。在Linux和Linux的命令行上在命令结束时将在后台运行命令。