python - 在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
的替换文件名。
推荐阅读
- java - YOLO...程序不循环分析每一帧
- python - Keras 多处理破坏了验证的准确性
- c# - 使用 Xml.Serialization 将 xml 问题传递给对象 c#
- c# - 无法让 DropDownList 在 .NET (C#) 中工作
- mysql - Wordpress 上的空管理栏
- jmeter - 在使用 Jmeter 进行负载测试时,如何在 csv 文件中生成一个随机值作为随机值
- batch-file - 将多个文本文档附加到一个文档的批处理文件
- flutter - Updating state in flutter
- javascript - How to render the landing page in server and the rest in client side?
- c - 为什么 %c 之前需要空格才能使代码正常工作?