如何在Python中正确使用pandas读取Excel文件

9次阅读

如何在Python中正确使用pandas读取Excel文件

本文详解pandas读取excel文件时常见的“filenotfounderror”问题,重点讲解路径书写规范、跨平台路径构建方法及调试技巧,帮助开发者快速定位并修复路径错误。

在使用 pd.read_excel() 读取本地Excel文件时,最常见的报错是 FileNotFoundError: [errno 2] No such file or Directory。这并非pandas或Excel模块的问题,而是文件路径不正确导致的——系统根本找不到你指定的文件。

? 常见路径错误原因

  • 反斜杠 被误解析为转义字符windows路径如 ‘C:UsersANGELDesktop…’ 中的 U、A 等会被python当作Unicode转义序列处理(例如 U 后接8位十六进制会触发 SyntaxError)。
  • 路径拼写错误:大小写不符(尤其在linux/macOS)、多余空格、中文字符未编码、文件名后缀错误(如 .xls vs .xlsx)。
  • 当前工作目录非预期位置:相对路径依赖运行时所在目录,而你的脚本可能不在桌面目录下执行。
  • 权限或隐藏属性限制:文件被占用、设为只读,或位于受保护系统路径中(较少见,但需排查)。

✅ 推荐解决方案:用 os.path.join() 构建健壮路径

避免手动拼接字符串,改用 os.path.join() —— 它会自动适配操作系统分隔符(windows用 ,macos/Linux用 /),且完全规避转义问题:

import os import pandas as pd  # ✅ 安全构建路径(推荐) folder = r"C:UsersANGELDesktopAkin Kyosk doc"  # 原始路径加 r 前缀(原始字符串) filename = "Sales.xlsx" filepath = os.path.join(folder, filename)  # ? 调试:检查文件是否存在 print("完整路径:", filepath) print("文件存在?", os.path.exists(filepath))  # ✅ 确认存在后再读取 if os.path.exists(filepath):     df = pd.read_excel(filepath)     print("✅ 成功加载,数据形状:", df.shape) else:     print("❌ 文件未找到,请检查路径和文件名!")

? 小贴士:路径前加 r(如 r”C:…”)可声明为原始字符串,防止反斜杠转义;但更推荐 os.path.join(),因其更具可移植性与可读性。

? 其他实用技巧

  • 获取当前工作目录,确认脚本执行起点:
    import os print("当前工作目录:", os.getcwd())
  • 列出目标文件夹内容,验证文件是否真实存在:
    print("目录内文件:", os.listdir(r"C:UsersANGELDesktopAkin Kyosk doc"))
  • 使用正斜杠 / 替代反斜杠(Python中完全合法):
    pd.read_excel("C:/Users/ANGEL/Desktop/Akin Kyosk doc/Sales.xlsx")  # ✅ 有效且简洁

⚠️ 注意事项

  • 确保已安装 openpyxl(读取 .xlsx)或 xlrd(旧版 .xls)引擎:
    pip install openpyxl  # 大多数情况只需此包
  • 若路径含中文,确保Python环境支持UTF-8(现代ide和Python 3.7+默认支持,无需额外处理)。
  • 避免截图报错信息——直接复制终端中的完整错误文本(含Traceback),便于精准诊断。

通过规范路径构建 + 主动验证 os.path.exists(),90%以上的 read_excel 路径问题都能迎刃而解。记住:路径不是“写出来就行”,而是“系统能精确定位到才行”

text=ZqhQzanResources