Восстановить только фотографии из полной iPhone резервной копии - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть iPhone, который был заархивирован в Ma c с помощью iTunes. iPhone полностью сломался, потеряв все фотографии, которые не были загружены в iCloud.

В новом iPhone недостаточно места для восстановления полной резервной копии, поэтому я пытаюсь вернуть фотографии обратно. Сначала я подумал, что мне нужно будет заплатить за сложную часть программного обеспечения для восстановления, но затем я обнаружил, что фотографии были сохранены в папке резервной копии с (как мне кажется,) случайными именами и без их расширения.

Первое, что приходит на ум, - это создать python скрипт. Вот что нужно было сделать:

  • Итерация по главному каталогу.
  • Итерация по всем меньшим каталогам внутри этого каталога.
  • Для каждого файла внутри каталог: проверьте тип файла и, если это изображение или видео (JPG или MOV), переименуйте его в разумное имя (например, «1.jpg») и добавьте тип файла в конец имени (например, «.jpg» ) затем скопируйте его в другой каталог.

Это сценарий, который я написал:

import os

path = input('Path: ')
out_path = input('Output path: ')

n = 0

for folder in os.listdir(path):
    for filename in os.listdir(os.path.join(path, folder)):
        filepath = os.path.join(path, folder, filename)
        if filename.endswith('.jpg'):
            os.rename(filepath, os.path.join(path, folder, str(n) + '.jpg'))
            os.move(os.path.join(path, folder, str(n) + '.jpg'), out_path)
            n += 1
        if filename.endswith('.mov'):
            os.rename(filepath, os.path.join(path, folder, str(n) + '.mov'))
            os.move(os.path.join(path, folder, str(n) + '.mov'), out_path)
            n += 1

Проблема в том, что этот сценарий выполняется без ошибок. Он запускается сразу после того, как вы ввели каталоги, но ничего не печатает, ничего не делает и не выдает ошибок (добавление оператора печати в l oop ничего не делало).

У меня присоединено фиктивная папка с некоторыми изображениями в папках, если люди думают, что знают ответ. У меня нет ни одного изображения, это только те изображения, которые я нашел в Google для тестирования.

Я бы не стал загружать какое-либо сложное программное обеспечение, потому что Ma c, упомянутая с резервной копией, довольно все равно медленно Я был бы открыт для любых других способов решения этой проблемы.

Большое спасибо!

РЕДАКТИРОВАТЬ: Это обновленный сценарий до сих пор, я не совсем понимаю использование os.walk(). Как бы я это реализовал?


import os
import filetype
import shutil

path = input('Path: ')
out_path = input('Output path: ')

n = 0

for filepath in os.walk(path):
    kind = filetype.guess(''.join(filepath))
    if kind.extension == 'jpg' or kind.extension == 'mov':
        shutil.copyfile(filepath, os.path.join(out_path, str(n)+'.'+kind.extension))
        n += 1


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...