2012-01-11 2 views
1
import xlrd 
book = xlrd.open_workbook("univ_list.xls") 

Я новичок в python. Я пытаюсь прочитать файл MS excel, который находится в том же каталоге, что и мой скрипт python. Выполнение приведенного выше кода дает мне ошибку no such file or directory.python: нет такой ошибки файла или каталога

При необходимости я предоставим дополнительную информацию.

Редактировать: код полным пути по запросу

import xlrd 
book = xlrd.open_workbook("D:\Python_Scripts\univ_list.xls") 

с сообщением

enter image description here

+1

Как вы запускаете скрипт? – Mark

+4

Просто быть в том же каталоге, что и скрипт python, недостаточно; этот каталог также должен быть текущим рабочим каталогом. Попробуйте указать полный путь к вашему .xls; если это исправляет, то это была ваша проблема. – AdamKG

+0

@Mark Я использую кнопку RUN в PyScripter. –

ответ

0
import xlrd 
book = xlrd.open_workbook("univ_list.xls") 

прекрасно работает за исключением того, что мне нужно заменить XLS с XLSX.

1

соответствующей ошибки Вы поранились струнными побегами. \ является escape-символом для строк Python, поэтому Python пытается найти коды эвакуации 0-и, кроме всего прочего, которые не будут то, что вы хотите.

Исправление либо избежать \, изменяя путь к «D: \ Python_Scripts \ univ_list.xls», или переключить строку в r"" (т.е. r"D:\Python_Scripts\univ_list.xls") строку, которая не чтить обратную косую черту.

+0

Я не совсем думаю, что это правильно в этом случае. Обратная косая черта - это символ escape, но он не избегает всех символов. Использование Raw Strings является хорошим, но рассмотрим следующие примеры: '' \ c "-> '\\ c'',' "\ b" ->' \ x08'', '" \ P "-> '\\ P' '. Попробуйте их в интерактивном приглашении. Python разумно исправляет обратные слэши, если следующий символ не является «особым» при экранировании. –

+1

@ g.d.d.c Несмотря на это, это хорошая практика. Что, если он вернется позже и хочет использовать путь к «D: \ Python_scripts \ new_workbook.xls»? «\ N» будет экранировано. – HardlyKnowEm

+0

Это тоже не решило мою проблему. –

0

Проблема заключается в том, что PyScripter устанавливает текущий каталог. Это не каталог, в котором находятся ваши файлы excel или python. Вероятно, это либо ваш дом, либо c: \, либо каталог Pyscriper (используйте os.getcwd(), чтобы получить то, что он есть).

Таким образом, исправление заключается в том, чтобы предоставить полный путь, но, как показано в других ответах и ​​комментариях, это должна быть строка в необработанном виде, поскольку Windows использует \, которые не хорошо сочетаются с использованием программирования \ в качестве escape-символа в строках.

2

Если питон говорит, что вы не можете найти файл, есть несколько шагов, которые вы Shou ld take. Во-первых, убедитесь, что файл существует. Первый шаг - убедиться, что оно написано правильно. Затем, как было предложено AdamKG, убедитесь, что python может это увидеть:

import os.path 
assert os.path.isfile(path_to_file) 
Смежные вопросы