为什么Python3无法执行一些Linux命令?
为什么Python3无法执行一些Linux命令?
我可以在树莓派3的终端上执行mjpg-streamer。
下面是我使用的命令。
mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 800x448" -o "output_http.so -p 8090 -w /usr/local/share/mjpg-streamer/www/"
现在我想在Python 3上执行它。因此,我尝试使用os.system()
和subprocess.call()来执行它,但是在运行代码后摄像头出现问题,只能重新启动树莓派3。即使os.system()
在代码为os.system(\'python3 test.py\')
时也能正常工作。
使用Python 3代码执行mjpg-streamer不可能吗?
下面是我的代码。
import os os.system('mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 800x448" -o "output_http.so -p 8090 -w /usr/local/share/mjpg-streamer/www/"')
admin 更改状态以发布 2023年5月20日
你可以尝试使用subprocess,可以保存stdout和stderr:
import subprocess ### define the command command = 'mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 800x448" -o "output_http.so -p 8090 -w /usr/local/share/mjpg-streamer/www/"' ### execute the command and save stdout and stderr as variables output, error = subprocess.Popen(command, universal_newlines=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
你将会在变量"output"中保存stdout,在"error"中保存stderr。
顺便说一句: 最好使用列出的格式