python - 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() 没有得到实际的文件夹路径?
解决方案
根据我的观察,移动到父目录的点 (.) 符号有时不起作用,具体取决于操作系统。我通常做的是使它与操作系统无关:
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 机器。我不确定是否有其他更好的方法来实现这一目标。如果有的话想听听。
推荐阅读
- scala - 从 Spark DataFrame 中选择特定列
- python - 是否可以在括号内格式化 PyCharm Python 代码?
- c# - 在一个类中设置变量并将值返回给另一个类
- ruby-on-rails - 如何在葡萄api中获取数据?导轨 5
- visual-studio - 编辑 Visual Studio 片段
- mysql - 使用日期作为参考对列重新编号
- html - React GET 请求在末尾添加字符
- angularjs - 如何使用 Angular Material Design 文档中的徽章?
- android - 将动态序列化名称与 gson 匹配
- ios - 堆栈跟踪中的方法显示为从块中调用,而在代码中则不是这样