2012-02-10 2 views
-1

Я новичок в Python при попытке открыть файл в 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

«читает путь с двойным обратной косой черты» не имеет никакого отношения. Это как раз то, как Python показывает \ в строке. Файл не существует. Это не имеет никакого отношения к \. Проверьте список каталогов. Используйте 'dir' и включите вывод в вопрос. –

ответ

2

либо из перечисленного является правильным:

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

или

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

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

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

7

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

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

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

phys = "C:/parsework/glckpysdata.txt" 
+1

Хорошо, имя файла было одно письмо, я чувствую себя идиотом, спасибо. – user1202297

+0

@ user1202297: «Я чувствую себя идиотом». Теперь вы знаете, что искать. Не забудьте принять этот ответ. –