Сделать Python строку необработанной строкой - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть следующий код:

#!/usr/bin/python

import os
from sys import exit as EXIT


File = os.path.realpath(__file__)
dir = os.path.dirname(File)
os.chdir(dir)
path_file = os.path.join(dir,"path.txt")
filo = open(path_file)
lines = filo.readlines()

if len(lines) == 1:
    path = lines[0]
else:
    raw_input("Too many lines... ")
    EXIT()

FILE = open(path)

Когда я запускаю его, я получаю ошибку:

Traceback (most recent call last):
  File "py/Zebra/zebra.py", line 20, in <module>
    FILE = open(path)
IOError: [Errno 2] No such file or directory: 'C:\\Users\\user\\file.txt'

Если путь будет жестко закодирован, я мог бы сделать что-то вроде пути = r "C: \ path \ to \ file"

Но поскольку переменная была определена другими методами, я не уверен, что сейчас это можно исправить: (

1 Ответ

1 голос
/ 01 апреля 2020

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

В любом случае, я думаю, что это подойдет :

path = r'%s' % pathToFile

РЕДАКТИРОВАТЬ: Кроме того, как прокомментировал вопрос, вы действительно должны быть уверен путь существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...