Au moins sous Windows, shutil.move
un dossier contenant des fichiers en lecture seule sur un autre lecteur échouera. Il échoue car move
est implémenté avec un copy
suivi d'un rmtree
. À la fin, c'est le rmtree
essayant de supprimer des fichiers non-inscriptibles.comment `shutil.move` avec des fichiers readonly sur les lecteurs
Actuellement, je travaille autour d'abord le réglage de la stat.S_IWUSER
pour tous (imbriqués) fichiers, mais maintenant je rétablisse toujours le stat
d'origine après:
def make_tree_writable(source_dir):
for root, dirs, files in os.walk(source_dir):
for name in files:
make_writable(path.join(root, name))
def make_writable(path_):
os.chmod(path_, stat.S_IWUSR)
def movetree_workaround(source_dir, target_dir):
make_tree_writable(source_dir)
shutil.move(source_dir, target_dir)
Alors je me demande: est-ce ainsi? Y a-t-il un shutil2
en cours de réalisation que je pourrais utiliser? Puis-je avoir de l'aide là-bas?
Pourquoi ne pas d'abord 'shutil.copytree()', puis changer les permissions de la source et enfin 'shutil.rmtree' sur la source? – VBB
Pourquoi ne pas verser cela dans une réponse pour que je puisse l'incriminer? – xtofl
Lié (non dupliqué): [shutil.rmtree pour supprimer les fichiers en lecture seule] (http://stackoverflow.com/q/21261132/364696) – ShadowRanger