Как переместить файл в другую папку / путь? - PullRequest
0 голосов
/ 29 марта 2020

Моя задача: я хочу написать автоматизацию, где мои разные типы файлов (.png, .jpg, .mp4, et c ...) перемещаются в разные папки из моего пути "Загрузки" ...

import os
import shutil

observed_path = "C:/Users/myName/Downloads/"
aim_path_pics = "C:/Users/myName/OneDrive/Dokumente/Coding/Ziel/Bilder/"
aim_path_vids = "C:/Users/myName/OneDrive/Dokumente/Coding/Ziel/Videos/"
image_list = ["png","tif","psd","ai","gif","jpg","bmp","eps","fh","cdr","jp2","xlsx"]
video_list = ["avi","wmv","mpg","mov","flv","swf","mp4","webm"]

name_type_dict = {}

def file_handler(my_path):

    if len(os.listdir(my_path)) > 0 :
        print(len(os.listdir(my_path)), "Dateien sind im Verzeichnis:", os.listdir(my_path))
        for contained_files in os.listdir(my_path):
            name, type = contained_files.split(".")
            name_type_dict[name] = type
            for i in image_list:
                if i in name_type_dict[name]:
                    print(i, "-->", contained_files)
                    shutil.move(contained_files, "C:/Users/Ülkem/OneDrive/Dokumente/Coding/Ziel/Bilder/") #Das bewegen der files funktionier NICHT!
            for v in video_list:
                if v in name_type_dict[name]:
                    print(v, "-->", contained_files)
                    shutil.move(contained_files, "C:/Users/Ülkem/OneDrive/Dokumente/Coding/Ziel/Bilder/") #Das bewegen der files funktionier NICHT!



    else:
        len(os.listdir(my_path)) == 0
        print("Es sind keine Dateien im Verzeichnis!") #




file_handler(observed_path)

Когда я запускаю скрипт, появляется следующая ошибка:

6 Dateien sind im Verzeichnis: ['desktop.ini', 'desktop.mp4', 'fdghdfgh.docx', 'gfjfghj.xlsx', 'hallo.txt', 'pdfjpg.png']
mp4 --> desktop.mp4
Traceback (most recent call last):
  File "C:\Users\myName\AppData\Local\Programs\Python\Python38\lib\shutil.py", line 781, in move
    os.rename(src, real_dst)
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden: 'desktop.mp4' -> 'C:/Users/myName/OneDrive/Dokumente/Coding/Ziel/Bilder/desktop.mp4'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\myName\Desktop\file_handler.py", line 37, in <module>
    file_handler(observed_path)
  File "C:\Users\myName\Desktop\file_handler.py", line 26, in file_handler
    shutil.move(contained_files, "C:/Users/myName/OneDrive/Dokumente/Coding/Ziel/Bilder/") #Das bewegen der files funktionier NICHT!
  File "C:\Users\myName\AppData\Local\Programs\Python\Python38\lib\shutil.py", line 795, in move
    copy_function(src, real_dst)
  File "C:\Users\myName\AppData\Local\Programs\Python\Python38\lib\shutil.py", line 426, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "C:\Users\myName\AppData\Local\Programs\Python\Python38\lib\shutil.py", line 259, in copyfile
    with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
FileNotFoundError: [Errno 2] No such file or directory: 'desktop.mp4'
[Finished in 0.143s]

PS: перед тем, как я использовал метод shutil.move, код выше (условие if) и for-l oop работал нормально, и я показал мне, что там есть файлы в моем пути загрузки и имена ... Я надеюсь, что смог объяснить мою проблему: D

...