从Python调用lp会导致脚本退出

时间:2015-03-23 17:03:24

标签: python python-2.7 printing raspberry-pi raspbian

以下Python脚本的任务是拍摄照片然后打印它。但是,每次脚本成功调用lp后,脚本都会退出(干净利落,没有例外或解释)

import time
import picamera
import subprocess

def main():
    with picamera.PiCamera() as cam:
        cam.start_preview(alpha=220)
        #cam.resolution = (2592, 1944)
        cam.capture('test.jpg')
    subprocess.check_call("lp -d HP-270 test.jpg")

while True:
    main()
    time.sleep(5.000)

2 个答案:

答案 0 :(得分:0)

尝试将对lp及其参数的调用分离为字符串列表。这是你将命令和参数传递给shell的方法,默认情况下subprocess.check_call没有shell解释你给它的原始字符串。

subprocess.check_call(["lp", "-d", "HP-270", "test.jpg"])

  

Subprocess library: Frequently Used Arguments

     

所有调用都需要args,并且应该是字符串或序列   程序参数。提供一系列论证通常是>   首选,因为它允许模块处理任何所需的   逃避>引用参数(例如允许文件中的空格)   名)。如果传递单个字符串,则任何一个shell都必须为True(请参阅   或者字符串必须简单地命名要执行的程序   没有指定任何参数。

答案 1 :(得分:0)