Написать строку пути к каталогу Python, которая содержит одинарный и двойной обратный слеш? - PullRequest
0 голосов
/ 01 ноября 2019

Я знаю, что python печатает строки, содержащие обратную косую черту, не так, как это есть на самом деле. Меня не волнуют операторы печати, но я просто хочу, чтобы строка начиналась с двух обратных косых черт, а все остальные косые черты были бы такими, как это:

\\xyz\abc\fish\orange

В настоящее время это то, что я кодировал, и яполучите ошибку ниже:

import shutil

dir_path = r"\\xyz\abc\fish\orange"
print(dir_path)
shutil.copyfile("U:/Profile/Downloads/document1", dir_path)

Я получаю сообщение об ошибке:

FileNotFoundError: [Errno 2] No such file or directory: '\\\\xyz\\abc\\fish\\orange'

Я заменил фактическое имя каталога на псевдонимы, но важно то, что форматирование косых черт выполняется. Я бы предпочел исправить эту проблему, не используя библиотеку os. Спасибо.

1 Ответ

0 голосов
/ 01 ноября 2019

Вы можете сделать это так.

import shutil 
from pathlib import Path
dir_path = Path(r"\xyz\abc\fish\orange\document1") print(dir_path) 
if dir_path.exist():
    shutil.copyfile("U:/Profile/Downloads/document1", dir_path)
else:
    print(f"{dir_path} do not exist")

Вы также можете поймать ошибку.

import shutil 
dir_path = r"\xyz\abc\fish\orange\document1" print(dir_path)
try: 
    shutil.copyfile("U:/Profile/Downloads/document1", dir_path)
except FileNotFoundError:
    print(f"{dir_path} do not exist")
...