我试图使用某些wsadmin命令的输出在其他命令中使用,但是,当我循环输出时,它似乎每行打印一个字符,这会炸毁我的其他命令。我需要添加什么才能使每行不打印单个字符。
cell_name = AdminControl.getCell()
# Get the DMGR Complete Object Name
dmgr_object_name = AdminControl.completeObjectName('WebSphere:name=DeploymentManager,type=DeploymentManager,mbeanIdentifier=DeploymentManager,*')
# Get the full Application Manager string.
appManager = AdminControl.queryNames('cell=' + cell_name + ',type=ApplicationManager,*')
for jvm in appManager :
print( jvm )
答案 0 :(得分:1)
添加补充@ Pred的方法的答案,并附加一些解释。
为了澄清,查询AdminControl.queryNames('cell=RandomCell1,type=ApplicationManager,*')
返回一个string
对象,如下所示:
'WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=Node1,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0\nWebSphere:name=ApplicationManager,process=dmgr,platform=proxy,node=Dmgr,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0'
因此,使用for
循环遍历上述字符串依次打印每个字符。
在上面的字符串中,每个条目由\n
(换行符)字符分隔。因此,将字符串拆分为\n
字符。
AdminControl.queryNames('cell=RandomCell1,type=ApplicationManager,*').split('\n')
返回一个字符串列表,每个字符串都是一个对应一个对象的条目。该列表看起来如下所示:
['WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=Node1,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0', 'WebSphere:name=ApplicationManager,process=dmgr,platform=proxy,node=Dmgr,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0']
遍历列表会将每个条目作为一个完整的字符串返回。
答案 1 :(得分:0)
答案是导入Java lineseparator
# get line separator
import java.lang.System as sys
lineSeparator = sys.getProperty('line.separator')
# Get the Cell Name
cell_name = AdminControl.getCell()
# Get the DMGR Complete Object Name
dmgr_object_name = AdminControl.completeObjectName('WebSphere:name=DeploymentManager,type=DeploymentManager,mbeanIdentifier=DeploymentManager,*')
# Get the full Application Manager string.
appManager = AdminControl.queryNames('cell=' + cell_name + ',type=ApplicationManager,*').split(lineSeparator)
然后,可以正确分割结果。