Execute terminal commands in python3
我在一个树莓派上,我正在使用一个叫做fswebcam的程序,它允许你用网络摄像头拍照。
如果在终端中输入该命令,它将拍摄一张照片并将其保存到您的计算机上,但是我想构建一个简单的python程序,该程序可以访问终端并执行上面列出的相同命令。
我试过使用import os和os.system('fswebcam image.jpg'),但它对我不起作用。
如何让python执行终端命令?
- 请显示一些您尝试过的实际代码和错误。
- 这就是你想要的吗?stackoverflow.com/questions/89228/…
- @可文关大概吧。但是,最好使用subprocess模块。
- 术语说明:终端是交互程序使用的设备(可能是窗口中显示的虚拟设备),最显著的是交互命令解释器(在Unix术语中称为shell)。os.system通常使用相同的shell,但使用非交互模式。所以,fswebcam image.jpg是一个shell命令,但它与终端无关。
- 什么是type fswebcam或command -v fswebcam?(在shell中键入命令)
使用子进程模块:
1 2
| import subprocess
subprocess.Popen(["fswebcam","image.jpg"]) |
- 如果os.system('fswebcam image.jpg')不起作用(例如,因为fswebcam是一个别名,仅在交互shell中可用),那么subprocess.Popen(["fswebcam","image.jpg"])也不会起作用。要等待命令完成,请使用subprocess.check_call()而不是Popen()。