比较IronPython中的字符串

时间:2011-10-02 11:58:46

标签: python ironpython

我正在尝试比较两个字符串,同时搜索要更新的WSUS组。但是,我的比较失败了,即使它们在视觉上看起来是相同的,并且属于同一类型。由于这是IronPython,我在Komodo中没有调试器(任何人都知道IP的一个?)

无论如何,有人能发现我做错了吗?

 #----------------------------------------------------------------------
 # Search for a matching patch group, and approve them.
 #----------------------------------------------------------------------
 def WSUSApprove(apprvGrpName):
     clr.AddReference('Microsoft.UpdateServices.Administration')
     import Microsoft.UpdateServices.Administration

     wsus = Microsoft.UpdateServices.Administration.AdminProxy.GetUpdateServer('wsus01',False,8530)

     parentGroupCollection = wsus.GetComputerTargetGroups()
     for computerTarget in parentGroupCollection:
         if computerTarget.Name.ToString() == 'Servers':
             parent = computerTarget
             childGroupCollection = parent.GetChildTargetGroups()
             for computerTarget in childGroupCollection:
                 print type(computerTarget.Name.ToString())
                 print type(apprvGrpName)
                 if apprvGrpName == computerTarget.Name.ToString():
                     print 'success', computerTarget.Name.ToString()
                 else:
                     print 'a', computerTarget.Name.ToString()
                     print 'b', apprvGrpName

#--output that should be equal--#

 <type 'str'>
 <type 'str'>
 a 3 Tuesday
 b 3 Tuesday

2 个答案:

答案 0 :(得分:1)

在Python 2.x上,使用repr()直观地查看两个字符串是否相同。 print基本上会调用str,因此您无法看到不可打印的字符,也很难看到空格中的差异。

所以,做:

print repr(computerTarget.Name.ToString())
print repr(apprvGrpName)

找出它们不相等的原因。

请参阅John Manchin关于在Python 3.x上使用什么的评论,其中repr()不会转义unicode字符。

答案 1 :(得分:0)

很可能你的一个字符串有一个尾随的空白字符,如换行符,回车符或空格。