Python 2.6.6 - 需要将OS.system命令的输出添加到另一个OS.system命令中

时间:2017-06-21 19:47:38

标签: python

下面是在给定的OS.system命令中搜索输入数据的脚本(复制到文件out.txt)并打印给定输入数据的行。现在我想把输出,即行放在另一个OS.system命令中。例如symaccess -sid 567 show -name xxx -type init其中xxx是前一个OS.system命令的输出,即line。

注意 - 我只能使用python 2.6.6和与存储相关的脚本

import os
os.system('symaccess -sid 456 list -type init > out.txt')
server = raw_input("server name:")
with open('out.txt', 'rt') as in_f:
     for line in in_f:
              if server in line:
                 print line

我使用了另一种方法如下 import os server = raw_input("服务器名称:")

var =" symaccess -sid 239 list -type init | grep \" {0} \"" .format(服务器)

wwn = os.system(var)

init =' symaccess -sid 239 -type init show {0}' .format(wwn)print init os.system(init)

上面是我用来将一个os.system的输出添加到另一个os.syste的脚本。我得到了第一个os.system执行但是第二个,即os.system(init)没有到来,因为os.system(var)应该被指定为变量。有人告诉如何将变量分配给os.system( init)

2 个答案:

答案 0 :(得分:3)

import subprocess
cmd= 'ls'
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
std_out = p.communicate()

这是一种在Python中访问输出的可能方法。

答案 1 :(得分:0)

尝试使用" subprocess.checkoutput()"。

import subprocess
import os
output = subprocess.check_output(['symaccess -sid 456 list -type init'])
os.system(output)