如何在Python中正确使用pandas读取Excel文件
技术百科
花韻仙語
发布时间:2026-01-24
浏览: 次 本文详解pandas读取excel文件时常见的“filenotfounderror”问题,重点讲解路径书写规范、跨平台路径构建方法及调试技巧,帮助开发者快速定位并修复路径错误。
在使用 pd.read_excel() 读取本地Excel文件时,最常见的报错是 FileNotFoundError: [Errno 2] No such file or directory。这并非pandas或Excel模块的问题,而是文件路径不正确导致的——系统根本找不到你指定的文件。
? 常见路径错误原因
- 反斜杠 \ 被误解析为转义字符:Windows路径如 'C:\Users\ANGEL\Desktop\...' 中的 \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:\Users\ANGEL\Desktop\Akin 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:\Users\ANGEL\Desktop\Akin 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 路径问题都能迎刃而解。记住:路径不是“写出来就行”,而是“系统能精确定位到才行”。
# 操作系统
# 它会
# 都能
# 更具
# 找不到
# excel
# python
# windows
# 只需
# 就行
# 设为
# mac
# win
# linux
# macos
# cos
# 编码
# 字符串
# 报错
# ide
# 才行
# pandas
# errno
# Directory
# 迎刃而解
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11 explorer.exe频繁崩溃_修复
- 企业SEO优化选择网站建设模板的技巧
- Python迭代器生成器进阶教程_节省内存与懒加载
- 如何使用Golang捕获并记录协程panic_保证
- Win10任务栏天气和资讯怎么关闭 Win10禁用
- 如何在JavaScript中动态拼接PHP的bas
- Python代码测试策略_质量保障解析【教程】
- 如何在Golang中配置代码格式化工具_使用gof
- 如何在Golang中实现微服务服务拆分_Golan
- Windows如何查看和管理已安装的字体?(字体文
- PHP主流架构如何处理会话管理_Session与C
- 如何使用Golang实现RPC序列化与反序列化_G
- Windows10怎样设置家长控制_Windows
- Win10怎么限制单程序CPU占用上限_Win10
- Windows10电脑怎么设置电源按钮_Win10
- php怎么下载安装后设置默认字符集_utf8配置步
- PHP的Workerman对架构扩展有啥帮助_应用
- Windows怎样拦截QQ浏览器广告_Window
- php命令行怎么运行_通过CLI模式执行PHP脚本
- Windows7如何安装系统镜像_Windows7
- 如何在 Go 中正确反序列化多个同级 XML 元素
- Win11怎么更改电脑密码_Windows 11修
- Windows家庭版如何开启组策略(gpedit.
- Win11怎样安装网易云音乐_Win11安装网易云
- Python文件管理规范_工程实践说明【指导】
- win11 OneDrive怎么彻底关闭 Win1
- c++中如何使用std::variant_c++1
- Windows10电脑怎么设置文件权限_Win10
- 如何使用Golang操作指针变量_Golang解引
- Win11怎么关闭任务栏小图标_Windows11
- 如何解决Windows字体显示模糊的问题?(Cle
- Win11怎么查看显卡温度 Win11任务管理器查
- Win11怎么开启远程桌面连接_Windows11
- Python异步编程高级项目教程_asyncio协
- MySQL 中使用 IF 和 CASE 实现查询字
- Win11局域网共享怎么设置 Win11文件夹网络
- Win10怎样设置闹钟贪睡时间 Win10闹钟贪睡
- 如何使用Golang实现微服务事件驱动_使用消息总
- c++中的std::conjunction和std
- php能控制zigbee模块吗_php通过串口与c
- Linux怎么禁止Root用户远程登录_Linux
- c++如何实现一个高性能的环形队列(Ring Bu
- Windows怎样关闭桌面弹窗广告_Windows
- 短链接还原php提示内存不足_调整PHP内存限制设
- 如何使用Golang实现Web表单数据绑定_自动映
- 如何在 Go 中可靠地测试含 time.Time
- XSLT怎么生成动态的HTML属性名和标签名
- Windows 11无法安全删除U盘提示设备正在使
- 如何使用Golang开发简单的聊天室消息存储_Go
- Win10怎么关闭自动更新错误重启 Win10策略


QQ客服