Python Ошибка перемещения Shutil: файл не найден - PullRequest
0 голосов
/ 22 марта 2020

Я получаю сообщение об ошибке в приведенном ниже коде: FileNotFoundError: [WinError 2] The system cannot find the file specified: 'Harry White.txt' -> 'C:\\Users\\johna\\Desktop\\z_testingmove\\Harry White\\Harry White.txt'

Кто-нибудь может мне помочь?

import shutil
import os, sys

source = 'C:\\Users\\johna\\Desktop\\z_testingmove'
dest1 = 'C:\\Users\\johna\\Desktop\\z_testingmove\\Harry White'
dest2 = 'C:\\Users\\johna\\Desktop\\z_testingmove\\John Smith'
dest3 = 'C:\\Users\\johna\\Desktop\\z_testingmove\\Judy Jones'

files = os.listdir(source)

for f in files:
    if f == "Harry White.txt":
        shutil.move(f, dest1)
    elif f == "John Smith.txt":
        shutil.move(f, dest2)
    elif f == "Judy Jones.txt":
        shutil.move(f, dest3)

1 Ответ

0 голосов
/ 22 марта 2020

Вы неправильно понимаете функцию shutil.move.

shutil.move(src, dst)

Рекурсивное перемещение файла или каталога (sr c) в другое место (dst) и верните пункт назначения.

src и dst должны быть full path файла или каталога.

Вы должны изменить свой код, Попробуйте это:

import shutil
import os, sys

source = 'C:\\Users\\johna\\Desktop\\z_testingmove'
dest1 = 'C:\\Users\\johna\\Desktop\\z_testingmove\\Harry White'
dest2 = 'C:\\Users\\johna\\Desktop\\z_testingmove\\John Smith'
dest3 = 'C:\\Users\\johna\\Desktop\\z_testingmove\\Judy Jones'

files = os.listdir(source)
for filename in files:
    sourcepath = os.path.join(source, filename)
    if filename == "Harry White.txt":
        destpath = os.path.join(dest1, filename)
        shutil.move(sourcepath, destpath)
    elif filename == "John Smith.txt":
        destpath = os.path.join(dest2, filename)
        shutil.move(sourcepath, destpath)
    elif filename == "Judy Jones.txt":
        destpath = os.path.join(dest3, filename)
        shutil.move(sourcepath, destpath)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...