I'm trying to create a folder and create a file within it.
Whenever i create that folder (via Python), it creates a folder that gives me no permissions at all and read-only mode.
When i try to create the file i get an IOError.
Error: <type 'exceptions.IOError'>
I tried creating (and searching) for a description of all other modes (besides 0770).
Can anyone give me light? What are the other mode codes?
After you create the folder you can set the permissions with os.chmod
The mod is written in base 8, if you convert it to binary it would be
000 111 111 000
rwx rwx rwx
The first rwx
is for owner, the second is for the group and the third is for world
r=read,w=write,x=execute
The permissions you see most often are
7 read/write/execute - you need execute for directories to see the contents
6 read/write
4 readonly
When you use os.chmod
it makes most sense to use octal notation
so
os.chmod('myfile',0o666) # read/write by everyone
os.chmod('myfile',0o644) # read/write by me, readable for everone else
Remember I said you usually want directories to be "executable" so you can see the contents.
os.chmod('mydir',0o777) # read/write by everyone
os.chmod('mydir',0o755) # read/write by me, readable for everone else
Note: The syntax of 0o777
is for Python 2.6 and 3+. otherwise for the 2 series it is 0777
. 2.6 accepts either syntax so the one you choose will depend on whether you want to be forward or backward compatible.
You've probably got a funky umask. Try os.umask(0002)
before making your directory.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With