我正在寻找替代品
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方法。如果这个问题是重复的,则在另一个帖子上,同样存在一个很好的答案。
答案 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
来替换文件名。