如何解决使用 python pathlib
我有一个 pathlib.Path 对象,想找到父文件夹的绝对路径,称为“BASE”。但是,我不知道“BASE”文件夹在设备树上多远。我只知道 pathlib.Path 将包含一个名为“BASE”的文件夹。 示例:
import pathlib
# the script is located at:
my_file_dir = pathlib.Path(__file__).parent
# some pathlib function to find the absolute path to BASE
# input_1: /some/path/BASE/some/more/layers/script.py
# output_1: /some/path/BASE
# input_2: /usr/BASE/script.py
# output_2: /usr/BASE
在早期的 python 版本中,我会使用 os.path、os.path.split() 并搜索字符串以获取目录。现在看来,pathlib 应该用于这些事情。但是如何?
编辑: 这是我使用 pathlib 解决它的方法。
def get_base_dir(current_dir: Path,base: str) -> Path:
base_parts = current_dir.parts[:current_dir.parts.index(base)+1]
return Path(*base_parts)
老实说,@victor__von__doom 的解决方案更好。
解决方法
我认为你可以更简单地在命令行参数上使用一些基本的字符串处理:
import sys
script_path,my_file_dir = sys.argv[0],''
try:
my_file_dir = script_path[:script_path.index('BASE')]
except ValueError:
print("No path found back to BASE"); exit()
sys
似乎比此处的 pathlib
容易得多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。