Функция Shutil.move () перемещает файлы в папку, которую я не могу открыть - PullRequest
0 голосов
/ 25 февраля 2020

Я использовал функцию shutil.move(), чтобы переместить некоторые важные файлы в желаемый каталог. Каталог не существует, поэтому я дал имя в качестве параметра i shutil.move() function. После выполнения, он переместил файлы в каталог (который, кажется, не каталог, при просмотре свойств он говорит, что это «Файл»), который я не могу открыть. Можете ли вы помочь мне открыть этот файл для извлечения моих файлов? Код был такой:

for file in Path("C/Users/Mahum/Downloads").glob(*.exe):
    shutil.move(file, "E/New Folder")

Код выполняется с нулевым кодом выхода, но у меня возникла эта проблема .....

Ответы [ 3 ]

2 голосов
/ 25 февраля 2020

Я думаю, вы неправильно поняли, что может делать Шутил.

  • Если местом назначения является каталог, тогда он переместит исходный файл в
    этого каталога.

  • Однако, если место назначения не существует, он будет переименовывать sr c как
    место назначения.

  • Если место назначения существует и это файл, он будет перезаписывать этот файл dest с исходным файлом.

Итак, в вашем случае, скажем, у вас было 5 файлов. «E / Новая папка» не существует. Таким образом, для файла l oop

file1 переименовывается в E / New Folder (на данный момент file1 не существует, а его содержимое находится в E / New Folder)

file2 перезаписывает E / New Папка (файл2 удален, а в E / New Folder теперь содержится содержимое файла file2, а файл file1 полностью потерян)

file3 перезаписывает E / New Folder (файл3 удаляется, а в E / New Folder теперь содержится содержимое Содержимое file3 и file2 теперь полностью теряется)

file4 перезаписывает E / New Folder (file4 удаляется, и E / New Folder теперь содержит содержимое file4, а содержимое file3 теперь полностью теряется) *

file5 перезаписывает E / New Folder (file5 удаляется, и E / New Folder теперь содержит содержимое file5, а содержимое file4 теперь полностью теряется)

Таким образом, E / New Folder действительно является файлом и будет содержать содержимое файла списка, который прошел через shutil.move к этому месту назначения, а все остальные файлы и содержимое будут потеряны.

0 голосов
/ 25 февраля 2020

Если вы не создали новую папку до того, как переместили файлы, возможно, запрос был обработан как файл и перезаписан поверх друг друга. Еще одна вещь, которая могла возникнуть, просто перезаписывает поверх каждого файла. Если у вас нет резервной копии, возможно, вы потеряли файлы. Вы можете попытаться восстановить с помощью программы восстановления диска. Ищите один для ОС.

0 голосов
/ 25 февраля 2020

Ваш путь должен быть C:/Users/Mahum/Downloads вместо C/Users/Mahum/Downloads

...