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



>我正在寻找替代品

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,但我认为这个解决方案看起来并不比我目前的方式更好。

备注:

它不是如何正确确定当前脚本目录?的副本,因为我明确询问了最好的方法。另一篇文章中的大多数解决方案看起来都不太好,或者在我的问题中已经提到过。解决方案

Path(__file__).with_name("foo.csv")
这里给出的解决方案

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

如果你想对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

相关内容

最新更新