Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:没有这样的文件或目录错误_Python_Excel_Xlrd - Fatal编程技术网

python:没有这样的文件或目录错误

python:没有这样的文件或目录错误,python,excel,xlrd,Python,Excel,Xlrd,我是python新手。我正在尝试读取与python脚本位于同一目录中的MS excel文件。运行上面的代码会给我一个错误,没有这样的文件或目录 如果需要,我会提供更多信息 编辑:根据请求使用完整路径编码 import xlrd book = xlrd.open_workbook("univ_list.xls") 带有相应的错误消息 您正受到字符串逃逸的伤害\是Python字符串的转义字符,因此Python正在尝试查找\P和\u转义代码(以及其他内容),它们不是您想要的 修复方法是通过将路径更改

我是python新手。我正在尝试读取与python脚本位于同一目录中的MS excel文件。运行上面的代码会给我一个
错误,没有这样的文件或目录

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

编辑:根据请求使用完整路径编码

import xlrd
book = xlrd.open_workbook("univ_list.xls")
带有相应的错误消息


您正受到字符串逃逸的伤害
\
是Python字符串的转义字符,因此Python正在尝试查找
\P
\u
转义代码(以及其他内容),它们不是您想要的


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

您会受到字符串转义的伤害
\
是Python字符串的转义字符,因此Python正在尝试查找
\P
\u
转义代码(以及其他内容),它们不是您想要的


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

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


因此,修复方法是提供完整路径-但如其他答案和注释所示,这需要是原始形式的字符串,因为Windows使用\作为字符串中的转义字符,这与编程使用\不太一致。

问题是PyScripter设置了当前目录。这不是excel或py使用的目录thon文件位于(它可能是您的主页,c:\或Pyscriber所在的目录(使用os.getcwd()获取它的内容)

import xlrd
book = xlrd.open_workbook("D:\Python_Scripts\univ_list.xls")
因此,修复方法是提供完整路径-但如其他答案和注释所示,这需要是原始形式的字符串,因为Windows使用\作为字符串中的转义字符,这与编程使用\不太一致

import xlrd
book = xlrd.open_workbook("D:\Python_Scripts\univ_list.xls")
除了我需要用xlsx替换xls之外,它工作得非常好


除了我需要用xlsx替换xls之外,它工作得非常好。

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

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

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

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

仅用于补充

\
替换为
/
\
即可:

导入xlrd
book=xlrd.open_工作簿(“D:/Python_Scripts/univ_list.xls”)
#book=xlrd.open\u工作簿(“D:\\Python\u Scripts\\univ\u list.xls”)
  • 因为在Python字符串中,反斜杠“\”是一个特殊字符,也称为“转义”字符。您可以在中阅读更多内容

  • 如果您需要
    \
    ,实际上您需要
    \\


仅供补充

\
替换为
/
\
即可:

导入xlrd
book=xlrd.open_工作簿(“D:/Python_Scripts/univ_list.xls”)
#book=xlrd.open\u工作簿(“D:\\Python\u Scripts\\univ\u list.xls”)
  • 因为在Python字符串中,反斜杠“\”是一个特殊字符,也称为“转义”字符。您可以在中阅读更多内容

  • 如果您需要
    \
    ,实际上您需要
    \\


如何运行脚本?仅仅与python脚本位于同一目录是不够的;该目录还需要是当前的工作目录。请尝试指定.xls的完整路径;如果这样可以解决问题,那就是您的问题。@Mark我正在使用PyScripter中的“运行”按钮。@TerryLiYifeng您可以添加您正在运行的新代码吗ying?我不运行Windows,但IIRC即使在Windows上,也应该使用前斜杠,因为反斜杠是python字符串中的转义字符。那么,我不确定。只是为了检查是否正常,请尝试
import os.path;assert os.path.isfile(路径)
。如何运行脚本?仅仅与python脚本位于同一目录是不够的;该目录还需要是当前的工作目录。请尝试指定.xls的完整路径;如果这样可以解决问题,那就是您的问题。@Mark我正在使用PyScripter中的“运行”按钮。@TerryLiYifeng您可以添加正在运行的新代码吗尝试?我不运行Windows,但IIRC即使在Windows上,也应该使用前斜杠,因为反斜杠是python字符串中的转义字符。那么,我不确定。只是为了检查是否正常,请尝试
import os.path;assert os.path.isfile(路径)在这种情况下,我不认为这是正确的。反斜杠是转义字符,但它不能避开所有字符。使用原始字符串是好的,但请考虑这些例子:<代码> \ \“->”\c' < /代码>、<代码> \ \b“->‘\x08' /COD>,<代码> \ p”。->'\\P'
。在交互式提示中尝试。如果以下字符转义时不是“特殊”的,Python会智能地更正反斜杠。@g.d.d.c即使如此,这也是一种很好的做法。如果他稍后返回并想使用“d:\Python\U scripts\new\U workbook.xls”的路径怎么办?“\n”我同意原始字符串是值得的