如何在Python中将os.system()的输出存储在变量或列表中

593 浏览
0 Comments

如何在Python中将os.system()的输出存储在变量或列表中

这个问题在这里已经有了答案:

运行shell命令并捕获输出

我试图通过在远程服务器上使用以下命令进行ssh来获取命令的输出。

os.system('ssh user@host " ksh .profile; cd dir; find . -type f |wc -l"')

这个命令的输出是14549 0。

为什么输出中有一个零?

有没有办法将输出存储在变量或列表中?我尝试将输出分配给变量和列表,但变量中只有0。我正在使用Python 2.7.3。

admin 更改状态以发布 2023年5月22日
0
0 Comments

你可以使用os.popen().read()

import os
out = os.popen('date').read()
print out
Tue Oct  3 10:48:10 PDT 2017

0
0 Comments

这个问题有很多好的SO链接。尝试从Python运行shell命令并捕获输出将os.system的输出分配给一个变量并防止它显示在屏幕上。简而言之

import subprocess
direct_output = subprocess.check_output('ls', shell=True) #could be anything here.

应谨慎使用shell=True标志:

来自文档的警告:

警告

如果与不受信任的输入组合使用,使用shell=True调用系统shell可能会带来安全风险。有关详细信息,请参见常用参数下的警告。

详细信息请参见:http://docs.python.org/2/library/subprocess.html

0