如何在Python中将os.system()的输出存储在变量或列表中
如何在Python中将os.system()的输出存储在变量或列表中
这个问题在这里已经有了答案:
我试图通过在远程服务器上使用以下命令进行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日
这个问题有很多好的SO链接。尝试从Python运行shell命令并捕获输出或将os.system的输出分配给一个变量并防止它显示在屏幕上。简而言之
import subprocess direct_output = subprocess.check_output('ls', shell=True) #could be anything here.
应谨慎使用shell=True标志:
来自文档的警告:
警告
如果与不受信任的输入组合使用,使用shell=True调用系统shell可能会带来安全风险。有关详细信息,请参见常用参数下的警告。