无法将 .xlsx 导入 Python:没有这样的文件或目录

Unable to import .xlsx into Python: No such file or directory

我正在尝试将数据从 HW3_Yld_Data.xlsx 导入 Python。我确保 Excel 文件与 Python 文件位于同一目录中。这是我写的:

import pandas as pd

Z = pd.read_excel('HW3_Yld_Data.xlsx')

这是我得到的错误:

In [2]: import pandas as pd
   ...: 
   ...: Z = pd.read_excel('HW3_Yld_Data.xlsx')
Traceback (most recent call last):

  File "<ipython-input-2-7237c05c79ba>", line 3, in <module>
    Z = pd.read_excel('HW3_Yld_Data.xlsx')

  File "/Users/Zhengnan/anaconda/lib/python2.7/site-packages/pandas/io/excel.py", line 151, in read_excel
return ExcelFile(io, engine=engine).parse(sheetname=sheetname, **kwds)

  File "/Users/Zhengnan/anaconda/lib/python2.7/site-packages/pandas/io/excel.py", line 188, in __init__
self.book = xlrd.open_workbook(io)

  File "/Users/Zhengnan/anaconda/lib/python2.7/site-packages/xlrd/__init__.py", line 394, in open_workbook
f = open(filename, "rb")

IOError: [Errno 2] No such file or directory: 'HW3_Yld_Data.xlsx'

令人难以置信的是它曾经工作得很好。在我昨天 "conda update --all" 之后它似乎停止工作了。

顺便说一句,我将 Spyder 用作 IDE。请帮忙。谢谢。

不要使用相对路径,而是使用 xlsx 的完整路径进行测试。您的 conda 更新可能改变了您的环境。

您可以尝试这样的方法来测试它:

import os
pre = os.path.dirname(os.path.realpath(__file__))
fname = 'HW3_Yld_Data.xlsx'
path = os.path.join(pre, fname)
Z = pd.read_excel(path)

操作系统中的每个进程都有一个current working directory。任何相对路径都是相对于当前工作目录。

当前工作目录设置为您启动进程的目录。这在使用命令行时很自然,但对于只使用 GUI 的人来说会感到困惑。

您可以使用 os.getcwd(), and you can change it using os.chdir() 检索它。当然,您也可以在启动脚本之前更改它。