以下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)
答案 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)