python - 如何获取在 shell 中使用 python 执行的命令和参数
问题描述
我在 aws-cli 中运行一个命令来获取日志,我需要使用这个命令的输出在 python 中执行一些操作。
我正在做这样的事情:
aws logs filter-log-events --log-group-name "something" --log-stream-names my-log-stream --filter-pattern "status=FAIL" | python3 -c "import sys, json; print(json.load(sys.stdin))"
上述命令获取 aws 日志并运行 python 代码片段以打印返回的 json。
我想在我的 python 代码片段中访问log-group-name
and log-stream-name
ie "something" & "my-log-stream" (在这种情况下)。我不确定如何做到这一点。
我尝试过使用sys.argv
,但它返回了在 python 命令中传递的参数,['-c']
而不是 aws 命令。
解决方案
管道不是这样工作的。它只是将命令的输出发送到下一个命令。您可以将log-group-name
and设置log-stream-name
为环境变量
export LGN=something
...
然后在 python 中访问它os.environ["LGN"]
...类似于这个
export LGN="my-log-group"; <your code here> | python3 -c "import os; print(os.environ['LGN'])"
推荐阅读
- pyspark - PySpark 高效方式 N 最大元素
- powerbi - 数据流能否作为数据源连接到数据湖
- excel - 如何使所有子程序都可以访问和修改 VBA 变量?
- sql-server - 向查询结果添加列
- python - Python 上的 Elasticsearch DSL 无法生成分数
- python - 从 C++ 访问在 python 中创建的 C++ 类
- python - 如何修复“TypeError:描述列表中的每个项目都必须是 AccessDescription”
- html - 输入 type=month 以另一种语言显示月份
- excel - 从excel中的数据透视表填充日志表
- vue.js - 在 VueJS/Quasar 应用程序上启动全屏