如何将os.system()输出存储在python的变量或列表中[重复]
问题内容:
这个问题已经在这里有了答案 :
运行shell命令并捕获输出 (18个答案)
5个月前关闭。
我正在尝试通过使用以下命令在远程服务器上执行ssh来获取命令的输出。
os.system('ssh user@host " ksh .profile; cd dir; find . -type f |wc -l"')
该命令的输出是14549 0
为什么输出为零?有什么办法将输出存储在变量或列表中?我也尝试将输出分配给变量和列表,但我在变量中只得到0。我正在使用python 2.7.3。
问题答案:
在这一点上有很多很好的SO链接。尝试从Python运行shell命令并捕获输出,
或将os.system的输出分配给变量,并阻止它显示在
启动器的屏幕上。简而言之
import subprocess
direct_output = subprocess.check_output('ls', shell=True) #could be anything here.
shell = True标志应谨慎使用:
来自文档:警告
如果与不受信任的输入结合使用,则使用shell = True调用系统外壳可能会带来安全隐患。有关详细信息,请参见“常用参数”下的警告。
请参阅更多信息:http :
//docs.python.org/2/library/subprocess.html