Python读取CSV文件时出现FileNotFoundError的求助
解决macOS下Python读取CSV文件的FileNotFoundError问题
针对你遇到的文件找不到问题,结合macOS系统特性,给出以下具体排查和解决步骤:
1. 确认脚本运行的工作目录
macOS下,脚本的当前工作目录不一定是脚本所在的目录(比如IDE默认工作目录可能不是脚本文件夹,终端没cd到对应路径就运行脚本)。可以在代码开头加入以下代码,打印当前工作目录:
import os print("当前工作目录:", os.getcwd())
如果输出路径和脚本/CSV文件所在目录不一致,解决方式:
- 终端运行:先执行
cd /你的脚本所在目录路径,再运行python your_script.py - IDE运行:在IDE的运行配置中,将"工作目录"设置为脚本所在文件夹(比如VS Code在launch.json中调整
cwd字段,PyCharm在运行配置的"工作目录"选项修改)
2. 检查文件的真实扩展名(macOS默认隐藏)
macOS默认会隐藏已知文件类型的扩展名,可能你看到的EC FILE.csv实际是EC FILE.csv.csv(保存时重复添加了扩展名)。要显示扩展名:
- 打开Finder,按
Cmd + ,打开偏好设置 - 切换到"高级"标签,勾选"显示所有文件扩展名"
- 核对CSV文件的真实名称,确保和代码里的文件名完全一致
3. 验证文件名的准确性(排除不可见字符)
文件名里的空格可能是全角空格(中文空格),或存在不可见控制字符,导致代码中的文件名与实际不匹配。可以通过终端验证:
- 打开终端,cd到文件所在目录
- 执行
ls -l,查看文件的准确名称,复制该名称替换代码里的文件名
4. 检查文件读取权限
如果文件是从网络下载或压缩包解压而来,macOS可能会标记为"来自互联网的文件"限制读取:
- 右键点击CSV文件,选择"显示简介"
- 拉到最底部,若有"已隔离"提示,点击"解除锁定"
- 或在终端执行
chmod +r "EC FILE.csv"(文件名带空格需加引号),赋予读取权限
额外优化:用脚本所在目录构建绝对路径
为彻底避免工作目录问题,可在代码中自动获取脚本所在目录,拼接CSV文件路径:
import os # 获取脚本所在的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 调用函数时用os.path.join拼接路径 plot_volcano('EC', os.path.join(script_dir, 'EC FILE.csv')) plot_volcano('PC', os.path.join(script_dir, 'PC FILE.csv')) plot_volcano('HIPPOCAMPUS', os.path.join(script_dir, 'HIPPOCAMPUS FILE.csv'))
内容的提问来源于stack exchange,提问作者Farah Yasser
相关产品推荐
相关产品推荐

