Экранирующий символ Python

Мы боролись с этим часами, и хотя я нашел решение, я неэто не нравится Есть ли встроенный способ решить это:

Вы находитесь в Windows с переменной, содержащей путь. Вы пытаетесь открыть файл с ним, но он содержит управляющие символы, которые вы можетене определить до времени выполнения.

Если вы используетеshutil» и делать:shutil.copy(file_path, new_file_path)

Работает нормально.

Но если вы попытаетесь использовать тот же путь с:

f = open(file_path, encoding="utf8")

Это нене работает, потому что\ А» в пути читается какBell» = 7

Я пытался сделать все это, но единственное, что ямы приступили к работе, это пользовательская функцияreconstruct_broken_string.

    file_path = "F:\ScriptsFilePath\addons\import_test.py"

    print(sys.getdefaultencoding())
    print()
    print(file_path.replace('\\', r'\\'))
    print( '%r' % (file_path))
    print( r'r"' + "'" + file_path+ "'")
    print(file_path.encode('unicode-escape'))
    print(os.path.normpath(file_path))
    print(repr(file_path))

    print()
    print(reconstruct_broken_string(file_path))


backslash_map = { '\a': r'\a', '\b': r'\b', '\f': r'\f',
                  '\n': r'\n', '\r': r'\r', '\t': r'\t', '\v': r'\v' }
def reconstruct_broken_string(s):
    for key, value in backslash_map.items():
        s = s.replace(key, value)
    return s

Вот распечатка:

utf-8

F:\\ScriptsFilePathddons\\import_test.py
'F:\\ScriptsFilePath\x07ddons\\import_test.py'
r"'F:\ScriptsFilePathddons\import_test.py'
b'F:\\\\ScriptsFilePath\\x07ddons\\\\import_test.py'
F:\ScriptsFilePathddons\import_test.py
'F:\\ScriptsFilePath\x07ddons\\import_test.py'

F:\ScriptsFilePath\addons\import_test.py

Есть ли встроенный способ сделать это, а не эту функцию? Почему это работает сshutil» и не 'открыть'

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос