关于pathlib:python中查找文件当前目录的最佳方法

Nicest way to find current directory of file in python

本问题已经有最佳答案,请猛点这里访问。

我正在找一个

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

备注:

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

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

这里给出的答案比另一个问题给出的答案要好得多,因为它很容易理解,而且是一种真正的Python式的解决方法。如果这个问题是一个可疑的,在另一个帖子上同样会有一个很好的答案。


如果您希望对pathlib执行相同的操作,它可能如下所示:

1
2
3
4
from pathlib import Path

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

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

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

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

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