在python中调用shell命令

在python中调用shell命令,python,linux,shell,Python,Linux,Shell,我需要在python中执行一个shell命令,并需要将结果存储到一个变量中。我怎样才能做到这一点。 我需要执行openssl rsautl-encrypt-inkey key,并将结果发送到一个变量 ---编辑--- 我如何执行 perl-e'print“hello world”| openssl rsautl-encrypt-inkey key 在python中获取输出..您可以使用 输出将存储在out中执行shell命令的简单方法是: 只需要以一个字符串的形式运行命令。它将返回一个打开的文件

我需要在python中执行一个shell命令,并需要将结果存储到一个变量中。我怎样才能做到这一点。 我需要执行
openssl rsautl-encrypt-inkey key
,并将结果发送到一个变量

---编辑---

我如何执行

perl-e'print“hello world”| openssl rsautl-encrypt-inkey key

在python中获取输出..

您可以使用


输出将存储在
out

中执行shell命令的简单方法是:


只需要以一个字符串的形式运行命令。它将返回一个打开的文件对象。通过使用
.readlines()
此打开的文件对象将转换为列表,其中列表中的一项将对应于命令的一行输出。

在询问之前是否可以搜索?虽然这篇文章可能会回答这个问题,但添加一些解释和相关文档的链接仍然是一个好主意。对当前的OP和未来的访客来说,有好的解释和参考的答案通常更有用。完整详细的答案也更有可能吸引正面的选票。老实说,我认为这个命令本身是非常不言自明的,但你是对的,我还是应该解释一下->我已经相应地更新了我的答案。我从来没有说过它不是不言自明的。仅仅是这段代码本身被接受和(或)升级的机会就更少了。好的答案通常会解释OP的代码失败的原因,可以做些什么来纠正它,也许还有一些额外的相关建议。这并不是说Python没有Perl的帮助就不能
编写(“Hello world”)
。我不是在质疑他想要运行的命令,我只是展示如何做到;-)@拉凯什奈尔,
from subprocess import check_output

out = check_output(["openssl", "rsautl", "-encrypt", "-inkey", "key"])
import os

cmdOutput1 = os.popen("openssl rsautl -encrypt -inkey key").readlines()
cmdOutput2 = os.popen("perl -e 'print \"hello world\"' | openssl rsautl -encrypt -inkey key").readlines()