[Discuss] File permissions in Python

Deryk Barker dbarker at camosun.bc.ca
Sat Aug 5 09:57:41 PDT 2006


Adam Parkin wrote:

> Continuing in the questions for the Python gurus series of e-mails.... 
> =8-p
>
> I've been banging my head for a little bit trying to figure out a 
> quick and easy way to read a file's permissions inside of a Python 
> script. What I want to do is be able to tell the rwx permissions 
> (ideally for all groups).  I have found the os.stat function, and it's 
> ST_MODE field, but this returns a decimal number for all permissions 
> (not just rwx for the three groups).  I suppose I could figure out the 
> permissions from the number via some and'ing and or'ing, but is there 
> not some easier way?
>
> If it helps: what I'm working on is taking all of the exercise 
> solutions to the problems in the Learning Perl book and rewriting them 
> in Python to help learn the langauge.  The chunk of code I'm stuck on 
> right now is this (in Perl):
>
>     $x = "foobar.txt"
>     print "$x is: ", ((-R $x) ? "readable " : ""),
>         ((-W $x) ? "writeable " : ""),
>         ((-x $x) ? "executable\n" : "\n");

The exact equivalent of what you're doing here would seem to be the 
os.access function.

name = 'foobar.txt'
print name, 'is',
if os.access (name, os.R_OK):
    print 'readable',
if os.access (name, os.W_OK):
    print 'writeable',
if os.access (name, os.X_OK):
    print 'executable',
print



More information about the Discuss mailing list