Python невозможно переместить каталоги с помощью shutil - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь написать сценарий, в котором он переместит каталог (содержащий изображения для обработки) в другой выделенный рабочий каталог (в папке проекта) с помощью shutil.move(). Однако мой сценарий Python продолжает терпеть неудачу, выдавая исключение [Errno 2] No such file or directory: '/Users/user/Desktop/Captured\\ Images'.

Целевой каталог полностью распознается, так что проблема не в этом.

Я сейчас используя macOS для разработки этого скрипта и используя стандартный BASH.

Вот как я ввожу путь к исходному каталогу (перетаскивая папку в терминал): /Users/user/Desktop/Captured\ Images.

Вот как Python интерпретирует исходный каталог: /Users/user/Desktop/Captured\\ Images.

Скрипт отлично работает, когда я изменяю исходный путь на: /Users/user/Desktop/Captured Images.

Я также пробовал использовать модуль Pathlib для предотвращения проблем с разделителем файлов, но это тоже не сработало.

Я точно знаю, что причиной проблемы является \ в пути к файлу, поскольку папка называется «Захваченные изображения» с пробелом между ними, таким образом, Captured\ Images.

Вот следующий исходный код:

move_directory(input("Please Input The Directory Of The Captured Images You Would Like To Import: "))   

def move_directory(source_directory):
    try:
        shutil.move(source_directory, os.path.dirname(os.path.dirname(__file__)) + '/Captured Images/Source Images')
    except OSError as errorMessage:
        print("Failed To Move Directory: {0}".format(errorMessage))

Обновление 1:

Я просто попытался переместить каталоги с помощью subprocess.run(["mv", ...]), и это сработало, Итак, теперь я вижу, что это не то, как сценарий принимает ввод, а проблема между вводом пути и shutil.move().

...