From: Matthew Shomphe Sent: Monday, June 16, 2003 4:59 PM To: 'Gus Tabares' Cc: python-list@python.org Subject: RE: Possible bug in setting Windows file permissions? (os.chmod() not working properly?) Bloody hell, you're right! I didn't think that UNIX file permission descriptions would work in Windows, but they do. Can someone make this clearer in the documentation? It's interesting to note that '666' maps into '33206' in the Windows file permission description. So you can (apparently), use both values to make a file readable & writeable. Thanks Gus, you rock! M@ -----Original Message----- From: Gus Tabares [mailto:gus.tabares@verizon.net] Sent: Monday, June 16, 2003 4:52 PM To: Gus Tabares; Matthew Shomphe Cc: python-list@python.org Subject: RE: Possible bug in setting Windows file permissions? (os.chmod() not working properly?) OK I lied. It's 666:) Sorry, Gus -----Original Message----- From: python-list-admin@python.org [mailto:python-list-admin@python.org]On Behalf Of Gus Tabares Sent: Monday, June 16, 2003 7:50 PM To: Matthew Shomphe Cc: python-list@python.org Subject: RE: Possible bug in setting Windows file permissions? (os.chmod() not working properly?) Matt, The second parameter to os.chmod() is typical UNIX-style permissions (i.e, 777 is r/w/x). I would suggest firing up google and searching for UNIX permissions (or something of the sort). I'm pretty positive that os.chmod(file, 777) will make R/W. HTH, Gus -----Original Message----- From: Matthew Shomphe [mailto:Matthews@heyanita.com] Sent: Monday, June 16, 2003 7:44 PM To: Gus Tabares Cc: python-list@python.org Subject: RE: Possible bug in setting Windows file permissions? (os.chmod() not working properly?) Gus, Thanks for the information. I thought this was the case as well. However, in the book (below), it says: ---------------------------------------------------- chmod(path, mode) Changes the mode of path. mode has the same values as described for the open() function. UNIX and Windows. ---------------------------------------------------- Beazley could full well be wrong (sorry, David! ;). In the on-line documentation (http://www.python.org/doc/current/lib/os-file-dir.html) it says: ------------------------------------------------------------------------ chmod(path, mode) Change the mode of path to the numeric mode. Availability: Unix, Windows. ------------------------------------------------------------------------ However, I don't see a description of the values for "mode". I could only deduce the numeric value required to get read/write permissions by checking the permissions of a file that I knew to be both readable & writable: ========================= from stat import * print os.stat('myReadAndWriteFile.txt')[ST_MODE] ========================= I can use the numeric value I grabbed from the above output to set permissions. However, setting permissions using these raw numeric values strikes me as A Bad Thing(TM). It doesn't make the code portable. And who knows what Redmond will do in the future? Let me make my inquiry clearer (I hope): (1) What are the values expected for the second argument to os.chmod()? (2) Are these values platform independant? (3) Is it documented anywhere? Thanks for your help! M@ PS. I'm using python2.3b1 -----Original Message----- From: Gus Tabares [mailto:gus.tabares@verizon.net] Sent: Monday, June 16, 2003 4:30 PM To: Matthew Shomphe; python-list@python.org Subject: RE: Possible bug in setting Windows file permissions? (os.chmod() not working properly?) Matt, I do believe os.O_RDWR is specifically for the open() function. Check out the bottom of this page: http://www.python.org/doc/current/lib/os-fd-ops.html HTH, Gus -----Original Message----- From: python-list-admin@python.org [mailto:python-list-admin@python.org]On Behalf Of Matt Shomphe Sent: Monday, June 16, 2003 7:18 PM To: python-list@python.org Subject: Possible bug in setting Windows file permissions? (os.chmod() not working properly?) I noticed an error when trying to change the file permissions for a file on a Windows (2K) machine. I'm using David Beazley's excellent "Python Essential Reference, 2nd. Ed." as a reference. According to the book (p. 186 for those following along at home), it should be used thusly: import os os.chmod('myReadOnlyFile.txt', os.O_RDWR) Where for os.O_RDWR, you could have any of the modes specified on p. 184. In other words, all the same bitwise-or modes for opening a file. What happens with the above code is: nothing at all. However, the following code *will* work to change a file to be accessible: import os os.chmod('myReadOnlyFile.txt', 33206) So, either I am using the os.chmod() function incorrectly, or there is something wrong elsewhere. Any hints on what's to be done? M@ -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list