"Cloning" file attributes and permissions

attn.steven.kuo at gmail.com attn.steven.kuo at gmail.com
Thu Apr 12 20:19:12 EDT 2007


On Apr 12, 4:09 pm, Paulo da Silva <psdasil... at esotericaX.ptX> wrote:
> attn.steven.... at gmail.com escreveu:
>
>
>
> > On Apr 12, 9:20 am, Paulo da Silva <psdasil... at esotericaX.ptX> wrote:
> >> Hi!
>
> >> I need to process a file to produce another file that *must* have
> >> *exactly* the same attributes and permissions of the former. What is the
> >> best way to do this? The file must not exist with contents (it may exist
> >> empty) unless it has the same attributes and permissions.
> >> I know how to do this using, let me call it, "C type code" (stat, chmod,
> >> chown, etc). I would like to hear some opinions on if and how it would
> >> be possible in a more elegant/python way.
>
> > Are you using a system that supports the creation
> > of a hard link?
>
> > If so, try os.link.
>
> May be I missed something exposing my q.
> I need to process an input file "foo" to produce a different contents
> file "bar". "bar" must have the same attributes/permissions of "foo".
> I forgot to say that the OS is Linux.



Sorry, I did misunderstand your question at first.
Well, you do have stat, chown, chmod in Python; but
if you're on Linux, you might just want to use
the "cp" command with the "-p" switch:

import subprocess
retcode = subprocess.call([ "/bin/cp", "-p", oldfile, newfile ])
On my system, this preserves the access permissions and ownership.

And if you modify the file after copying, you can alter
the access and modification times with posix.utime
to match that of the original.

--
Hope this helps,
Steven











More information about the Python-list mailing list