在Colab中从文件夹运行Jupyter Notebook时,导入文件后无法访问CSV文件的解决办法
在Colab中从文件夹运行Jupyter Notebook时,导入文件后无法访问CSV文件的解决办法
嘿,这个问题其实挺常见的,核心原因是相对路径的工作机制在Colab里容易踩坑。你已经通过sys.path.append把文件夹加到了Python的搜索路径里,所以能成功导入.py文件,但那些导入的文件里用的相对路径,并不是相对于它们自己所在的文件夹,而是相对于当前Notebook的工作目录(Colab默认是/content),所以自然找不到你的CSV文件啦。
给你几个实用的解决办法,按需选就行:
直接用绝对路径访问CSV:最简单粗暴的方式,在需要读取CSV的
.py文件里,直接写CSV的完整路径,比如:import pandas as pd df = pd.read_csv('/content/drive/MyDrive/[my folder]/your_file.csv')这种方式不用改其他设置,只要路径写对就没问题,缺点是如果文件夹位置变了,得手动改路径。
动态获取文件所在路径(推荐):如果不想硬编码路径,可以在那个需要访问CSV的
.py文件里,先获取自身所在的文件夹,再拼接CSV的文件名,这样不管文件夹移到哪都能用:import os import pandas as pd # 获取当前.py文件的绝对路径 current_file_path = os.path.abspath(__file__) # 获取文件所在的文件夹 current_folder = os.path.dirname(current_file_path) # 拼接CSV文件的路径 csv_file_path = os.path.join(current_folder, 'your_file.csv') # 读取CSV df = pd.read_csv(csv_file_path)切换Notebook的工作目录到目标文件夹:在Notebook的开头先切换工作目录到你的文件夹,这样所有相对路径都会基于这个文件夹来查找,不管是Notebook里的代码还是导入的
.py文件里的相对路径都能正常工作:import os # 切换到你的文件夹 os.chdir('/content/drive/MyDrive/[my folder]')注意:切换工作目录后,你在Notebook里的其他相对路径也会基于这个文件夹,所以要确保其他操作的路径也适配。
最后再检查两个小细节:
- 确认你的Google Drive已经在Colab里挂载成功了(如果用的是Drive里的文件夹),挂载代码是:
from google.colab import drive drive.mount('/content/drive') - 核对CSV文件的文件名和路径拼写,别出现大小写错误或者少打了文件夹名的情况,Colab里路径是区分大小写的哦。
备注:内容来源于stack exchange,提问作者Daniel Mendoza
相关产品推荐
相关产品推荐

