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

我是 python 新手。我正在尝试读取与我的 python 脚本位于同一目录中的 MS excel 文件。运行上面的代码给我一个no such file or directory错误。

如果需要,我会提供更多信息。

编辑:根据要求提供完整路径的代码

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

带有相应的错误信息

在此处输入图像描述

4

5 回答 5

2

你受到字符串逃逸的伤害。 \是 Python 字符串的转义字符,因此 Python 正在尝试查找\P\u转义码(除其他外),这不会是您想要的。

修复方法是\通过将路径更改为“D:\Python_Scripts\univ_list.xls”来转义,或者将字符串切换为不支持反斜杠的r""(即)字符串。r"D:\Python_Scripts\univ_list.xls"

于 2012-01-11T17:35:49.520 回答
2

如果 python 说你找不到文件,你应该采取几个步骤。首先是确保文件存在。第一步是确保拼写正确。然后,按照 AdamKG 的建议,确保 python 可以看到它:

import os.path 
assert os.path.isfile(path_to_file)
于 2012-01-11T18:47:03.803 回答
1

只是为了补充

替换\/or\\会很好:

import xlrd
book = xlrd.open_workbook("D:/Python_Scripts/univ_list.xls")
 # book = xlrd.open_workbook("D:\\Python_Scripts\\univ_list.xls")
  • 因为在 Python 字符串中,反斜杠“\”是一个特殊字符,也称为“转义”字符。您可以在文档中阅读更多内容。

  • 如果你需要\,其实你需要\\

于 2019-04-26T11:16:35.933 回答
0

问题是 PyScripter 设置了当前目录。这不是您的 excel 或 python 文件所在的目录(它可能是您的主目录、c:\ 或 Pyscriper 所在的目录(使用 os.getcwd() 来获取它的内容)。

因此,解决方法是提供完整路径 - 但如其他答案和评论所示,这需要是原始形式的字符串,因为 Windows 使用 \ 与编程使用 \ 作为字符串中的转义字符不能很好地混合。

于 2012-01-11T17:44:17.713 回答
0
import xlrd
book = xlrd.open_workbook("univ_list.xls")

工作得很好,除了我需要用 xlsx 替换 xls。

于 2012-01-11T17:57:13.707 回答