python - 为什么python3不能执行一些linux命令?
问题描述
我可以使用 raspberry-pi 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() 来执行它,但是它无法执行它并且在运行代码后网络摄像头出错了,所以我必须重新启动 raspberry-pi 3。甚至os.system()
运行良好当代码像os.system('python3 test.py')
.
不能使用 pathon 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/"')
解决方案
您也可以尝试使用允许保存 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()
并且您将标准输出保存在“错误”变量中的“输出”和“标准错误”中。
顺便说一句:建议使用列出的格式
推荐阅读
- sql - 在 VBA 文本框更改事件中的 SELECT 查询中使用 SQL WHERE 子句
- python - 根据条件或值计算列中值的百分比
- spring - Spring Boot Keycloak 无法从
- dask - Dask:至少 N 天前有移位的列值
- solidity - 为什么我不能在 Solidity 中返回动态数组?
- kubernetes - k8s:将 YAML 转换为 JSON 时出错:yaml:第 33 行:找到无法启动任何令牌的字符
- php - 如何只允许 PHP 从我的服务器下载图像?
- node.js - 我不明白为什么在运行 docker 映像的容器时会出现此错误
- bash - 如何在文件中字符串的倒数第二个实例下方获取行
- google-cloud-platform - SignalR websockets 仅适用于第一次请求 Google Cloud Compute Engine