2017-01-10 5 views
1

У меня есть словарь в Python, который включает в себя настоящий и желаемый путь файла.Переместить ссылки файлов в словаре в python

files = { 
    'C:\\Users\\a\\A\\A.jpg': 'C:\\Users\\a\\A\\test_a\\A.jpg', 
    'C:\\Users\\a\\B\\B.jpg': 'C:\\Users\\a\\B\\test_a\\B.jpg', 
    'C:\\Users\\a\\C\\C.jpg': 'C:\\Users\\a\\test_a\\C.jpg' 
} 

Как я могу использовать пункты карты в качестве аргументов функции shutil.move()? Я пробовал несколько способов без успеха.

+0

Можете ли вы показать нам, что вы пробовали? Что вы ожидали от пары ключ-значение? Использует ли 'для источника, dest в files.items(): shutil.move (source, dest)' cover? –

ответ

5

насчет:

for frm,to in files.items(): 
    shutil.move(frm,to) 

Вы просто перебирать (key,value) кортежей словаря, и вызовите функцию shutil.move на них.

Единственная проблема, которую я вижу, заключается в том, что вам, возможно, необходимо сначала создать каталог : в противном случае перемещение объекта может завершиться ошибкой. Вы можете сделать это первым обнаружения os.path.dirname, обнаружить, если каталог существует, и если не создать такой каталог:

#only if you are not sure the directory exists 
for frm,to in files.items(): 
    directory = os.path.dirname(to) 
    os.makedirs(directory,exist_ok=True) #create a directory if it does not exists 
    shutil.move(frm,to) 
+1

Спасибо !!! Я забыл использовать функцию 'items()' ..... – user2666249

Смежные вопросы