shutil.move -> Error: [Errno 1] Operation not permitted

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Komisch... Ich möchte eine Datei mit shutil.move() unter Linux verschieben. Dabei wird eine existierende Datei überschrieben. Normalerweise habe ich die nötigen Rechte dazu. Dennoch bekomme ich nur ein "Error: [Errno 1] Operation not permitted".
Wenn ich das selbe in der Shell mit "mv" mache, geht's... Auch per subprocess funktioniert es.

Bsp:

Code: Alles auswählen

filepath = "/home/jens/Photos/2007/1/4/P1030509.JPG"
dest_path = "/home/jens/Photos/2007/01/04" # <- auch mit Slash am Ende

shutil.move(filepath, dest_path) # <- geht nicht

# das geht:
process = subprocess.Popen(
    ['mv', filepath, dest_path],
    stdout=subprocess.PIPE
)
process.wait()
print process.stdout.read()
Zur Info: Ich bin nicht der Besitzer der Datei. Allerdings bin ich in der Gruppe "users" und die Gruppe hat schreibrechte beim Verzeichnis und der schon existierenden Datei.

Was auch nicht geht ist ein os.utime(fn, (atime, mtime)) nach dem kopieren... Es liefert auch nur ein "Error: [Errno 1] Operation not permitted".

Jemand eine Idee?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

jens hat geschrieben:Dennoch bekomme ich nur ein "Error: [Errno 1] Operation not permitted". Wenn ich das selbe in der Shell mit "mv" mache, geht's... Auch per subprocess funktioniert es.
Hallo Jens!

Ich hatte das gleiche Problem unter Windows. Ich weiß aber nicht was man dagegen tun könnte. Meine Lösung damals war auch subprocess zu verwenden.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten