newbie: strange python problem
Skip Montanaro
skip at pobox.com
Thu Apr 10 10:10:47 EDT 2003
maxx> #!/usr/bin/python
maxx> import os
maxx> for line in os.popen('ls -la /').readlines():
maxx> direntry = line.split()
maxx> print direntry
maxx> print direntry[0]
maxx> print direntry[1]
maxx> print direntry[2]
maxx> ---
maxx> No list-items with an index above 1 are printed. They produce a
maxx> 'IndexError: list index out of range' error... which is strange,
maxx> because the list 'direntry' is 9 items large, so listitems up to
maxx> index 8 should be printed... right?
Note that you are munch on the precise output of ls -la /, which includes
the summary line at the start of the listing, not just the directory entries
themselves.
Try os.listdir("/") instead:
>>> print os.listdir("/")
['.DS_Store', '.hidden', '.Trashes', '.vol', 'Applications',
'Applications (Mac OS 9)', 'automount', 'backup', 'bin', 'cores',
'Desktop (Mac OS 9)', 'Desktop DB', 'Desktop DF', 'Desktop Folder',
'dev', 'Developer', 'Documents', 'etc', 'include', 'Installer Log File',
'Library', 'mach', 'mach.sym', 'mach_kernel', 'Network', 'private',
'sbin', 'Shutdown Check', 'STV0680 Camera Snapshots', 'sw', 'System',
'System Folder', 'Temporary Items', 'TheVolumeSettingsFolder', 'tmp',
'Trash', 'Users', 'usr', 'var', 'Volumes']
That will only give you the names, but you can then call os.stat for each
entry to get the other information in the ls listing.
Skip
More information about the Python-list
mailing list