Путь в переменной - PullRequest
       3

Путь в переменной

0 голосов
/ 24 июня 2010

Как мне добавить письмо к пути?

Например, если у меня есть путь типа 'c:\example2\media\uploads\test5.txt' (хранится в переменной), но мне нужно что-то вроде r'c:\example2\media\uploads\test5.txt', как я могу добавить букву `r?

Потому что функция open() не хочет открывать первый путь. Когда я пытаюсь добавить путь к функции open(), она выдает ошибку и путь, например, такой: u'c:\\example2\\media\\uploads\\test5.txt' и говорит, что файл или каталог отсутствуют. Что мне делать?

Ошибка выглядит так:

[Error 3] The system cannot find the path specified: u'C:\\example2\\media\\upload\\ZipFile.zip'

когда я открываю это ('c: \ example2 \ media \ uploads \ test5.txt'), это не работает. И выдает ошибку (которую вы можете увидеть сверху)

Ответы [ 3 ]

5 голосов
/ 24 июня 2010

Из сообщения об ошибке видно, что строка хранится в правильном формате (обратные слэши экранируются путем удвоения). Так что, похоже, путь неверный, а файл действительно отсутствует.

С другой стороны, во втором примере, который вы добавили в редактирование, вы используете open('c:\example2\media\uploads\test5.txt') - это определенно не удастся, потому что \t является символом табуляции (тогда как все другие комбинации обратной косой черты и буквы не существуют , поэтому обратная косая черта будет обрабатываться так, как если бы она была правильно экранирована). Но вы сказали, что строка была сохранена в переменной, поэтому я не вижу, как этот пример помогает здесь.

Обратите внимание на следующее:

>>> path = 'c:\example2\media\uploads\test5.txt'
>>> path
'c:\\example2\\media\\uploads\test5.txt'

См? Все обратные слэши конвертируются в экранированные обратные слэши , кроме для \t, потому что это единственное значение, имеющее особое значение. И сейчас, конечно, этот путь не верен. Поэтому, если переменные, на которые вы ссылаетесь, были определены таким образом (и теперь содержат недопустимые пути), вы ничего не можете сделать, кроме как исправить источник:

>>> path = r'c:\example2\media\uploads\test5.txt'
>>> path
'c:\\example2\\media\\uploads\\test5.txt'

Вы можете подумать, что впоследствии можете «исправить» неисправный путь, как это:

>>> path = 'c:\example2\media\uploads\test5.txt'
>>> path.replace("\t","\\t")
'c:\\example2\\media\\uploads\\test5.txt'

... но есть много других escape-кодов (\b, \r, \n и т. Д.), Так что на самом деле это неосуществимо, особенно потому, что вы будете лечить симптомы, а не исправлять основная проблема.

1 голос
/ 24 июня 2010

ну это загрузка или загрузка? Ваш вопрос говорит одно, а ваша ошибка говорит другое. 'U' в начале указывает, что строка имеет формат Unicode, это не должно иметь никакого влияния. символ '\\' необходим для того, чтобы Python экранировал символ '\'.

0 голосов
/ 24 июня 2010

Буква 'r' предназначена только для интерпретатора Python.Это указывает на то, что интерпретатор не должен избегать последовательностей при разборе строки.Если строка уже сохранена в переменной, это не имеет ничего общего с буквой 'r'.

Я думаю, проблема в том, что такого файла на самом деле нет.Попробуйте скопировать эту строку, полученную в исключении (я имею в виду путь от этой строки), и вставить ее в диалоговое окно запуска Windows (Win + r покажет его).Затем нажмите «Ввод».

Если вы получили ошибку, проверьте пути.У вас есть и upload, и uploads в вашем вопросе, убедитесь, что вы используете правильный код в своем коде.

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