下面是在给定的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)
答案 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)