在Python中找到文件的当前目录的最佳方式

11 浏览
0 Comments

在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找到了一个解决方案,但我不认为这个解决方案比我当前的方式更好。

备注:

这不是How to properly determine current script directory?的重复问题,因为我明确询问了最好的方式。其他帖子中的大多数解决方案看起来不太好,或者已经在我的问题中提到了。这里给出的解决方案

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

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

0
0 Comments

在Python中找到文件的当前目录的最好方法

在Python中,要找到文件的当前目录,可以使用`__file__`变量和`pathlib`库。下面是一些使用`pathlib`的示例代码:

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

在这个示例中,`Path(__file__)`表示当前文件的路径,`.parent`表示父目录,`.absolute()`表示获取绝对路径。然后,使用`joinpath()`方法将文件名连接到父目录路径上,得到最终的文件路径。

如果不需要知道`package_dir`的值,也可以直接获取文件路径:

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

这个方法直接用新的文件名替换原来的文件名,得到新的路径。

使用`pathlib`库可以简化处理文件的过程,使代码更加清晰易懂。

另外,如果在使用`with_name()`方法时,传递的参数中包含反斜杠`\`,可能会出现错误。因为`with_name()`方法只能替换文件名部分,不能替换路径部分。如果要替换路径部分,可以使用其他方法。

以上是关于在Python中找到文件的当前目录的最佳方法及其使用注意事项。希望对你有帮助!

0