在python中找到文件当前目录的最佳方法

时间:2019-01-20 18:02:29

标签: python pathlib

我正在寻找替代品

import os
package_dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(package_dir,'foo.csv')

我的工作路径不是文件路径。因此,当我要加载文件时,需要一种方法来生成与工作目录相比的相对路径。

我想更新到pathlib(或那里的其他文件)。但是,最好的方法是什么?

我找到了https://stackoverflow.com/a/44188489,但我认为这种解决方案看起来并不比我目前的方法更好。

备注:

它不是How to properly determine current script directory?的副本,因为我明确询问了最好的方法。另一篇文章中的大多数解决方案看起来不太好,或者已经在我的问题中提到。解决方案

Path(__file__).with_name("foo.csv")
此处给出的

比其他问题给出的解决方案要好得多,因为它易于理解,并且是解决问题的一种真正的Python方法。如果这个问题是重复的,则在另一个帖子上,同样存在一个很好的答案。

1 个答案:

答案 0 :(得分:4)

如果您希望对pathlib做同样的事情,它可能看起来像这样:

from pathlib import Path

package_dir = Path(__file__).parent.absolute()
file_path = package_dir.joinpath("foo.csv")

除非您要更改当前的工作目录,否则可能确实不需要/不想使用.absolute()

如果您实际上不需要知道package_dir是什么,也可以直接获取file_path

file_path = Path(__file__).with_name("foo.csv").absolute()

这为您提供了新的Path来替换文件名。