我正在使用树莓派,并且使用一个叫做 fswebcam
的程序,它可以让你使用网络摄像头拍照。
~$ fswebcam image.jpg
输入该命令将拍照并将其保存到计算机上,但我想构建一个简单的Python程序,可以访问终端并执行与上面列出的相同的命令。
我尝试使用import os
并使用os.system('fswebcam image.jpg')
,但对我没有起作用。
如何让Python执行终端命令?
我正在使用树莓派,并且使用一个叫做 fswebcam
的程序,它可以让你使用网络摄像头拍照。
~$ fswebcam image.jpg
输入该命令将拍照并将其保存到计算机上,但我想构建一个简单的Python程序,可以访问终端并执行与上面列出的相同的命令。
我尝试使用import os
并使用os.system('fswebcam image.jpg')
,但对我没有起作用。
如何让Python执行终端命令?
使用subprocess模块:
import subprocess
subprocess.Popen(["fswebcam", "image.jpg"])
os.system('fswebcam image.jpg')
无法工作(例如,因为 fswebcam
是仅在交互式 shell 中可用的别名),那么 subprocess.Popen(["fswebcam", "image.jpg"])
也无法帮助。要等待命令完成,请改用 subprocess.check_call()
而不是 Popen()
。 - jfs
os.system
通常使用相同的shell,但处于非交互模式。因此,fswebcam image.jpg
是一个_shell命令_,但与_terminal_无关。 - Sergey Salnikovtype fswebcam
或command -v fswebcam
?(在 shell 中输入命令) - jfs