Альтернативный способ перехода от строкового литерала к необработанному строковому литералу при чтении по пути к файлу - PullRequest
1 голос
/ 26 февраля 2020

Я пишу функцию, а моим входным параметром является путь к файлу: C: \ Users \ HP \ Desktop \ IBM \ Новая папка

def read_folder(pth):
    for fle in Path(pth).iterdir():
        file_name = Path(pth) / fle
    return file_name

Чтобы использовать эту функцию, мне нужно чтобы указать r'' в пути к файлу, ie.

read_folder(r'C:\Users\HP\Desktop\IBM\New folder')

Есть ли способ избежать указания r'' в пути к файлу ie. как показано ниже, и код будет работать.

read_folder('C:\Users\HP\Desktop\IBM\New folder')

Причина, по которой я хочу сделать это, состоит в том, чтобы упростить пользователю просто скопировать и вставить путь к каталогу в функцию и просто запустить функция. Так что это больше для удобства использования на стороне пользователя.

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

На самом деле вы не можете этого сделать, потому что без добавления r к вашей строке нет никакого способа, которым интерпретатор python узнал бы, что ваша строка содержит \ преднамеренно, а не специально для экранирования символов.

Таким образом, вы должны использовать r"C:\Users\HP\Desktop\IBM\New folder" или "C:\\Users\\HP\\Desktop\\IBM\New folder" в качестве аргумента при вызове read_folder функции.

0 голосов
/ 26 февраля 2020

Вы можете избежать обратной косой черты:

read_folder('C:\\Users\\HP\\Desktop\\IBM\New folder')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...