如何从 Python 脚本中的 shell 重定向获取输出数据?
How to get output data from shell redirection inside a Python script?
实际上,我正在创建几个实用程序来处理 AWS CLI 响应,这些响应以 json 响应。
我的整个脚本生态系统都基于 Python,通常我会创建微型实用程序来获取 json 数据并解析为 readable/organized 数据。
但我注意到我花了很多时间来创建脚本,除了隐藏 数据结构 响应之外,这可能也很有用。
一个更有趣的替代方法是创建一个脚本,它只从 aws cli 接收 json 数据,并以 map 作为参数,将信息过滤到什么我需要。我假装通过一个简单的 shell 重定向(管道)来做到这一点。
现在,我可以在 Node.js 脚本中做类似的事情。以下准确说明了我想在 Python 中如何操作:
除非有人说没有办法将 shell 命令输出重定向到 python 脚本,否则我不想只用与其他语言不同的语言维护这段代码.
如何将 shell 输出重定向到 python 脚本?
您可以在 Python 中阅读 sys.stdin
。我对上面 javascript 代码的理解是在 Python:
中翻译成这个
import sys
import json
object_data = json.loads(sys.stdin.read())
print(object_data['description'])
但是请注意,AWS API 有一个 Python SDK,因此您可能根本不需要绕过这些 JSON 输出。
实际上,我正在创建几个实用程序来处理 AWS CLI 响应,这些响应以 json 响应。 我的整个脚本生态系统都基于 Python,通常我会创建微型实用程序来获取 json 数据并解析为 readable/organized 数据。
但我注意到我花了很多时间来创建脚本,除了隐藏 数据结构 响应之外,这可能也很有用。
一个更有趣的替代方法是创建一个脚本,它只从 aws cli 接收 json 数据,并以 map 作为参数,将信息过滤到什么我需要。我假装通过一个简单的 shell 重定向(管道)来做到这一点。
现在,我可以在 Node.js 脚本中做类似的事情。以下准确说明了我想在 Python 中如何操作:
除非有人说没有办法将 shell 命令输出重定向到 python 脚本,否则我不想只用与其他语言不同的语言维护这段代码.
如何将 shell 输出重定向到 python 脚本?
您可以在 Python 中阅读 sys.stdin
。我对上面 javascript 代码的理解是在 Python:
import sys
import json
object_data = json.loads(sys.stdin.read())
print(object_data['description'])
但是请注意,AWS API 有一个 Python SDK,因此您可能根本不需要绕过这些 JSON 输出。