indentation error

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Fri Mar 5 12:48:35 CET 2010


On Fri, 05 Mar 2010 00:04:13 -0800, asit wrote:

> Consider the following code
[snip]
> According to me, indentation is ok. but the python interpreter gives an
> indentation error

You can trust the interpreter. There *is* an indentation error. Most 
likely you have mixed spaces and tabs. Try:

python -t -t search.py

instead. (Yes, -t twice.)

On an unrelated note, your code snippet shows a very poor coding style. 
Firstly, bare "except" clauses are VERY bad practice: it will mask bugs 
in your code. Secondly, you should wrap the smallest amount of code in 
the try block as you need.

Something like this is probably better:


pattern = raw_input("Enter the file pattern to search for :\n")
commandString = "find " + pattern
commandOutput = commands.getoutput(commandString)
findResults = string.split(commandOutput, "\n")
print "Files : "
print commandOutput
print "============================="
for file in findResults:
    try:
        mode = stat.S_IMODE(os.lstat(file)[stat.ST_MODE])
    except (IOError, OSError):
        # Print a useless error message so your users will hate you.
        print "There was a problem with %s" % file
        continue
    print "\nPermissions for file", file, ":"
    for level in "USR", "GRP", "OTH":
        for perm in "R", "W", "X":
            if mode & getattr(stat,"S_I"+perm+level):
                print level, " has ", perm, " permission"
            else:
                print level, " does NOT have ", perm, "permission"
    

-- 
Steven



More information about the Python-list mailing list