python - 使用代码存储库时如何引用资源的相对路径

我们正在使用部署到 Windows 和 Linux 的代码存储库 - 有时位于不同的目录中。项目内部的模块之一应该如何引用项目中的非 Python 资源之一(CSV 文件等)?

如果我们这样做:

thefile = open('test.csv')

或:

thefile = open('../somedirectory/test.csv')

仅当脚本从一个特定目录或目录的子集运行时才会起作用。

我想做的是这样的:

path = getBasePathOfProject() + '/somedirectory/test.csv'
thefile = open(path)

有可能吗?

最佳答案

尝试使用相对于当前文件路径的文件名。 './my_file' 的示例:

fn = os.path.join(os.path.dirname(__file__), 'my_file')

在 Python 3.4+ 中,您还可以使用 pathlib :

fn = pathlib.Path(__file__).parent / 'my_file'

https://stackoverflow.com/questions/1270951/

相关文章:

linux - 获取图像尺寸(不是文件大小)的快速方法

python - 在 Python 中清除终端

linux - 如何从远程 SSH session 将数据发送到本地剪贴板

python - 修改刻度标签文本

linux - Bash:无限 sleep (无限阻塞)

python - 如何保持 Python 脚本输出窗口打开?

c - GCC 的 __builtin_expect 在 if else 语句中的优势是什么?

linux - 如何使 rpm 自动安装依赖项

python - 如何在 Python 中获取已排序数组的索引

python - 不可变与可变类型