首页 > 解决方案 > Python os.getcwd() 不适用于 VSCODE 中的子文件夹

问题描述

我有一个从 Jupiter Notebook 转换而来的 python 文件,并且该文件夹中有一个名为“datasets”的子文件夹。当我尝试使用以下代码打开该“数据集”文件夹内的文件时:

import pandas as pd
# Load the CSV data into DataFrames
super_bowls = pd.read_csv('/datasets/super_bowls.csv')

它说没有这样的文件或文件夹。然后我添加这一行

os.getcwd()

并且输出是项目的顶级文件夹,而不是这个python文件的子文件夹。我想也许这就是它不起作用的原因。

那么,如何使用相对路径打开该 csv 文件?我不想使用绝对路径,因为此代码将在另一台计算机中使用。

为什么 os.getcwd() 没有得到实际的文件夹路径?

标签: pythonpandasvisual-studio-code

解决方案


根据我的观察,移动到父目录的点 (.) 符号有时不起作用,具体取决于操作系统。我通常做的是使它与操作系统无关:

import pandas as pd
import os

__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))

super_bowls = pd.read_csv(__location__ + '/datasets/super_bowls.csv')

这同样适用于我的 Windows 和 ubantu 机器。我不确定是否有其他更好的方法来实现这一目标。如果有的话想听听。


推荐阅读