Ошибка при создании скрипта сортировки файлов

#python

#python

Вопрос:

Я пытаюсь написать программу, которая сортирует мои загрузки; однако, когда я пытаюсь запустить ее, я получаю следующее:

 Traceback (most recent call last):
  File "/usr/lib/python3.5/shutil.py", line 538, in move
    os.rename(src, real_dst)
FileNotFoundError: [Errno 2] No such file or directory:'UntitledDocument.txt' -> 'Downloads/TxtFiles/UntitledDocument.txt'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/nicholas/Python/DownloadSorter.py", line 19, in <module>
    shutil.move(file, folders[fileType])
  File "/usr/lib/python3.5/shutil.py", line 552, in move
    copy_function(src, real_dst)
  File "/usr/lib/python3.5/shutil.py", line 251, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib/python3.5/shutil.py", line 114, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 'UntitledDocument.txt'
  

Это код :
#!/usr/bin/python3
импорт операционной системы
импорт shutil

 folders = {
    '.tar.gz': 'Downloads/TarFiles',
    '.deb': 'Downloads/DebFiles',
    '.iso': 'Downloads/IsoFiles',
    '.txt': 'Downloads/TxtFiles',
    '.exe': 'Downloads/ExeFiles',
    '.mp3': 'Videos',
    '.wav': 'Music'
}
os.chdir('/home/nicholas/')

for file in os.listdir('Downloads'):
    for fileType in folders.keys():
        if file.endswith(fileType):
            shutil.move(file, folders[fileType])
  

Ответ №1:

Проблема в том, что вы используете имя файла без пути и shutil ищете файл в рабочем каталоге вместо Downloads directory.

Исправление простое:

 shutil.move(os.path.join('Downloads', file), folders[fileType])
  

Комментарии:

1. … По-прежнему предполагается, что каталог назначения действительно существует.

2. Вы правы. Но мы имеем дело с этим по одной ошибке за раз 🙂