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

Nicest way to find current directory of file in python

我正在寻找

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

我的工作路径不是文件的路径。所以当我想加载一个文件时,我需要一种方法来生成相对于我的工作目录的相对路径。

我想更新到 pathlib(或其他任何可用的)。但是最好的方法是什么?

我找到了 ,但我不认为这个解决方案看起来比我目前的方式更好。

备注:

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

Path(__file__).with_name("foo.csv")

这里给出的解决方案比另一个问题中给出的解决方案要好得多,因为它很容易理解,并且是一种真正的 pythonic 解决方法。如果这个问题是重复的,那么 post 也会有同样好的答案。

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

from pathlib import Path

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

除非您要更改当前工作目录,否则您可能不会真正 need/want 使用 .absolute()

如果你其实不需要知道package_dir是什么,你也可以直接得到file_path

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

这给你新的 Path 替换文件名。