foremost -i /dev/sda6 -dvqT -t jpg -o /mnt/gentoo/found
Эта команда сканирует /dev/sda6 на предмет наличия JPEG-файлов и складирует их в директорие /mnt/gentoo/found/.
Данные получили. Но вот что делать со структурой папок? Ведь восстанавливаюсь только данные. Имена, пути - всё это теряется.
Чтобы как-то рассортировать фотографии по папкам был написан скрипт, который берёт дату и время из EXIF каждого файла и перемащает его исходя из шаблона:
output_dir/[date]/[time].[ext]
Вот текст скрипта:
#!/usr/bin/env python
import sys
import os
import shutil
from mmpython import *
def organize(input_dir, output_dir):
"Move files from input directory to output directory in form 'output_dir/<date>/<time>.jpg'"
# all files without dates will be stored in 'output_dir/others/<files_without_date>.jpg'
files_without_date = 0
files = os.listdir(input_dir)
for file_name in files:
print u'Processing file ' + file_name
info = parse(os.path.join(input_dir,file_name))
if not isinstance(info, mediainfo.ImageInfo):
print 'File type expected to be image.'
continue
if not hasattr(info, 'date') or not info.date or len(info.date.split(' ')) != 2:
(dir, file) = ('others', unicode(files_without_date))
files_without_date += 1
else:
(dir, file) = info.date.replace(':', '-').split(' ')
newdir = os.path.join(output_dir, dir)
if not os.path.exists(newdir):
os.makedirs(newdir, mode=0777)
elif not os.path.isdir(newdir):
print "Failedto create directory: entry with the same name exists."
continue
new_file_path = os.path.join(newdir, file)
tmp_file_path = new_file_path
j = 0
ext = os.path.splitext(file_name)[1]
while os.path.exists(tmp_file_path + ext):
tmp_file_path = new_file_path + '_' +unicode(j)
j += 1
new_file_path = tmp_file_path
shutil.move(os.path.join(input_dir, file_name), new_file_path + ext)
print "File successfully moved to "+ new_file_path + ext
if __name__ == "__main__":
organize(sys.argv[1], sys.argv[2])
./cataloger.py /путь/к/исходному/каталогу/ /куда/ложить/результат/
Комментариев нет:
Отправить комментарий