Обратная косая черта Python не исчезнет - PullRequest
0 голосов
/ 10 февраля 2012

Я новичок в python, пытаюсь открыть файл в python, используя:

phys = "C:\\parsework\\glckpysdata.txt"
print phys
d = open(phys)

При запуске я получаю:

C:\parsework\glckpysdata.txt
Traceback (most recent call last):
  File "C:\py\boxtest2.py", line 28, in <module>
    d = open(phys)
IOError: [Errno 2] No such file or directory: 'C:\\parsework\\glckpysdata.txt'

Я чувствую, что перепробовал все (phys = r "C: \ parsework \ glckpysdata.txt", прямой ввод в команду open с двойными и одинарными кавычками / обратной косой чертой и т. д.) ничто, по-видимому, не мешает ему прочитать путь с двойной обратной косой чертой.Самое неприятное в этом - у меня точно такой же синтаксис в том же скрипте, и он отлично работает там:

thisguy = "C:\\parsework\\glckout\\"
thisguy += nam
g = open(thisguy)

в том же скрипте и работает отлично.Может кто-нибудь сказать мне, что происходит?

Ответы [ 2 ]

7 голосов
/ 10 февраля 2012

Ваша проблема не в двойной обратной косой черте в пути - это просто артефакт от отображения представления строки в сообщении об ошибке.Фактическая строка не содержит двойной обратной косой черты.

Ваша проблема просто в том, что C:\parsework\glckpysdata.txt не существует, как говорится в сообщении об ошибке.

Кстати, чтобы избежать такой проблемыпросто используйте косую черту в путях:

phys = "C:/parsework/glckpysdata.txt"
2 голосов
/ 10 февраля 2012

Любое из следующих правил является правильным:

phys = "C:\\parsework\\glckpysdata.txt"

или

phys = r"C:\parsework\glckpysdata.txt"

Исключение означает, что файл не существует или у вас нет прав доступа к нему. Дважды проверьте путь и имя файла (предположительно, вам не хватает h в glckpysdata.txt?)

Двойная обратная косая черта в сообщении об исключении - это просто отображение встроенных обратных косых черт; каждый \\ соответствует одиночному обратному слешу в строке.

...