2017-01-13 2 views
0
for i in os.listdir(): 
    if "jpeg" in i or "png" in i: 
     shutil.move(os.path.join(os.getcwd(),i),"my photos") 

Je voulais déplacer toutes les photos dans un dossier appelé "mes photos" qui n'existe pas. Il a créé un fichier txt appelé "mes photos" mais il ne fait que 300 ko et quand je l'affiche, il ne montre qu'une de mes photos. Alors, comment puis-je récupérer mes photos? où sont-ils maintenant?shutil.move a supprimé toutes mes photos

+0

J'ai peur que toutes vos photos aient été déplacées sur le même fichier, le suivant écrasant le précédent. Donc, vous avez seulement la dernière photo disponible. Ne faites rien de plus sur votre disque, utilisez un logiciel de récupération de disque pour essayer de les récupérer (comme la récupération Stellar NTFS si vous utilisez Windows) –

+0

Oups ... Eh bien, c'est pourquoi vous n'avez pas débuggé avec une entrée fictive. Pour faire ce que vous vouliez faire, le deuxième argument de 'shutil.move' aurait dû être un répertoire existant. Donc, vous devriez avoir créé le dossier en premier. Donc, il a été interprété comme un fichier qui était écrasé chaque fois qu'une nouvelle photo était déplacée. Je pense que vous avez perdu em mate .. –

+0

J'utilise mac alors y at-il un logiciel de récupération pour les récupérer? Je ne savais pas que ce doit être un fichier existant. J'ai appris mais cela m'a coûté mes photos :( –

Répondre

1

Je crois que shutil.move a simplement pris chaque fichier et interprété "mes photos" comme le nom pour enregistrer chaque fichier plutôt que d'un répertoire dans lequel copier. Pour chaque image du répertoire, elle aurait été écrasée, laissant "mes photos" avec juste le contenu de la dernière image copiée. En regardant des exemples comme this de comment les gens ont utilisé shutil pour déplacer des fichiers, ils joignent le nom du répertoire de base et le nom du fichier pour former le paramètre target.

J'espère que vous avez eu des sauvegardes.