J wrote:
Can someone explain why this code results in two different outputs?
for os in comp.CIM_OperatingSystem ():
print os.Name.split("|")[0] + " Service Pack", os.ServicePackMajorVersion
osVer = os.Name.split("|")[0] + " Service Pack", os.ServicePackMajorVersion
print osVer
the first print statement gives me this:
Microsoft Windows XP Professional Service Pack 3
and the second print statement gives me this:
(u'Microsoft Windows XP Professional Service Pack', 3)
I know this is a grossly oversimplified example.
The ultimate goal is to get certain things from the system via WMI and
then use that data in other scripts to generate test case scripts for
a testing tool.
So given this example, what I ultimately want is to create a class
full of this stuff, that I can call from another program like this:
import SystemInformation
comp = SystemInformation()
# Get OS info
OSVersion = comp.osVer
OR just print the result
print comp.osVer
Can this be cleared up by using some sort of formatting in print (like
sprintf) or am I going to have to manipulate the WMI results before
sending them out??
Thanks
Jeff
The issue is that on line one you are printing two strings, and on line
three you are printing one tuple. It's easier to show on Python 3:
Python 3.1 (r31:73574, Jun 26 2009, 20:21:35) [MSC v.1500 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
--> print('this','that')
this that
--> temp = 'this','that'
--> temp
('this', 'that')
--> print(temp)
('this', 'that')
--> print(*temp) # pass the pieces of temp individually
this that
What you probably want on line two is:
osVer = os.Name.split("|")[0] + " Service Pack " + \
str(os.ServicePackMajorVersion)
or, in Python 2.x:
osVer = "%s Service Pack %d" % (os.Name.split("|")[0],
os.ServicePackMajorVersion)
This way, osVer is a string, and not a tuple.
Hope this helps.
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list