我正在尝试比较两个字符串,同时搜索要更新的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
答案 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)
很可能你的一个字符串有一个尾随的空白字符,如换行符,回车符或空格。