Jupyter中pd.read_csv读取CSV遇FileNotFoundError问题求助
问题解答
路径一致性判断
你的../file_path/file_name.csv与os.path.abspath('file_name.csv')输出的路径完全不一致:
../file_path/file_name.csv是相对路径,指向「当前工作目录的上一级目录下的file_path文件夹中的目标文件」os.path.abspath('file_name.csv')输出的是「当前工作目录下file_name.csv的绝对路径」,从你的输出可知,当前工作目录为/YXRwLW5vdGVib29rLW5pbmd1eWVuLXNlc3Npb24teGJ1YQ==/file_path/,该路径直接指向当前目录下的文件
两者的查找逻辑完全不同,自然会出现文件找不到的错误。
故障排查与解决建议
1. 确认当前工作目录
执行以下代码,直接获取Jupyter Notebook的当前工作路径:
import os print(os.getcwd())
这比os.path.abspath()更准确——后者即使目标文件不存在,也会基于当前目录生成路径,无法反映真实的工作目录。
2. 验证文件实际位置
既然直接用pd.read_csv('file_name.csv')能成功读取,说明目标文件就在当前工作目录中。你写的../file_path/file_name.csv是向上一级目录查找file_path文件夹,自然找不到当前目录下的文件。
3. 修正路径方案
如果你倾向于使用明确路径,推荐两种方式:
- 绝对路径:直接复制
os.path.abspath('file_name.csv')输出的完整路径:df_csv = pd.read_csv('/YXRwLW5vdGVib29rLW5pbmd1eWVuLXNlc3Npb24teGJ1YQ==/file_path/file_name.csv', low_memory=False) - 动态拼接相对路径:用
os.path.join()拼接路径,避免手动拼写错误,同时保证路径兼容性:import os current_dir = os.getcwd() target_file = os.path.join(current_dir, 'file_name.csv') df_csv = pd.read_csv(target_file, low_memory=False)
4. 基础检查
- 确认路径/文件名的大小写、空格(若有空格需用引号包裹或转义)、后缀(如
.csv是否写成.CSV)完全正确 - 若文件确实在上级目录的
file_path中,先通过os.listdir(os.path.join(os.getcwd(), '..'))查看上级目录是否存在file_path文件夹
关于直接使用文件名的疑问
直接用文件名的相对路径是安全的,只要你能保证文件与Notebook的相对位置不变,且Jupyter的工作目录不会被手动修改。如果追求更高的稳定性,使用上述动态拼接路径或绝对路径的方式即可。
内容的提问来源于stack exchange,提问作者bananas
相关产品推荐
相关产品推荐

