Будучи совершенно новым в Python, я пытаюсь запустить команду над набором файлов в Python. Команде требуется как исходный, так и целевой файл (на самом деле я использую imagemagick convert
, как в примере ниже).
Я могу предоставить как исходные, так и целевые каталоги, однако не могу понять, как легко сохранить структуру каталогов из исходного в целевой каталог.
например. скажем, srcdir
содержит следующее:
srcdir/
file1
file3
dir1/
file1
file2
Затем я хочу, чтобы программа создала следующие файлы назначения на destdir
: destdir/file1
, destdir/file3
, destdir/dir1/file1
и destdir/dir1/file2
Пока вот что я придумал:
import os
from subprocess import call
srcdir = os.curdir # just use the current directory
destdir = 'path/to/destination'
for root, dirs, files in os.walk(srcdir):
for filename in files:
sourceFile = os.path.join(root, filename)
destFile = '???'
cmd = "convert %s -resize 50%% %s" % (sourceFile, destFile)
call(cmd, shell=True)
Метод walk напрямую не указывает, в каком каталоге находится файл srcdir
, кроме конкатенации строки корневого каталога с именем файла. Есть ли какой-нибудь простой способ получить файл назначения, или мне нужно выполнить некоторые операции со строками, чтобы сделать это?