Gary Herron wrote: > James Colannino wrote: > >> James Colannino wrote: >> >> >> >>> So then I entered the command print 0600, and saw that the actual >>> number being output was 384 (why would it output 384?!) >>> >>> >>> >> >> >> Ok, so further research revealed that 0600 is actually the octal >> representation for 384 (which makes sense.) So then, I guess my >> question would have to be, is there a way for me to make Python aware >> that the 0600 I'm passing to int() is octal and not decimal so that I >> will get 384 instead of 600? >> >> > int('0600',8) will do, but why would you want to do that? > > Any of > x = 0600 > x = 384 > x = 0x180 > x = int('0600',8) > will bind x to the same value (110000000 in binary if you care). > > But once you've got the valued defined, through whatever human readable > representation you want, the command > chmod(filename, x) > can be issued without further thought.
He reads the string ('0600' in this case, but I guess it can be any permission) from a file. So he doesn't have the numerical value to begin with. BTW, I guess it's safer to do int(permission, 8) than int(permission, 0), since the first digit isn't guaranteed to be zero: it is used for set user ID, set group ID and the sticky bit. -- If I have been able to see further, it was only because I stood on the shoulders of giants. -- Isaac Newton Roel Schroeven -- http://mail.python.org/mailman/listinfo/python-list