python - 用“|”执行linux命令 和 Python 中的 "'\n'"
问题描述
我尝试在 Python 中执行 linux 命令,但没有得到任何输出和任何错误。
import subprocess, os
cmd = ["iwconfig", "wlan0", "|", "grep", "ESSID", "|", "awk", "-F:", "'{print $2}'", "|", "sed", "'s/\"//g'"]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = proc.communicate()
print(output.decode("ascii"))
输出应该是连接的 Wi-Fi 的 ESSID。
对不起,我阅读了其他问题,但我无法理解。
解决方案
|
是一个外壳功能。你需要shell=True
.
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
推荐阅读
- c# - C# - 如何为程序创建“保护进程”并确保它始终运行?
- php - WordPress:获取带有状态草稿并已发布的用户帖子数量
- android-studio - 带有复选框的android中的Snackbar小部件使用
- tensorflow - Keras 模型无法预测预期输出
- hive - Hive 日期功能:获取月份部分
- flutter - 有状态小部件的访问方法
- java - Okhttp GET 请求是否默认使用 gzip?
- html - 保存后如何显示选择的选项
- python - 如何将自定义文件格式解析为 Python 中的 json 或 Python 字典?
- apache-zookeeper - 如何更改 Solr 云中的 zkclientTimeout?