跳至内容

CLI 应用程序目录

您可以使用 typer.get_app_dir() 获取应用程序目录,例如,您可以将配置文件保存在该目录中。

from pathlib import Path

import typer

APP_NAME = "my-super-cli-app"


def main():
    app_dir = typer.get_app_dir(APP_NAME)
    config_path: Path = Path(app_dir) / "config.json"
    if not config_path.is_file():
        print("Config file doesn't exist yet")


if __name__ == "__main__":
    typer.run(main)

它将为您提供一个目录,用于在每个操作系统中为当前用户存储适合您的 CLI 程序的配置。

检查它

$ python main.py

Config file doesn't exist yet

关于 Path

如果您以前没有见过类似的东西

Path(app_dir) / "config.json"

Path 对象可以使用 /,它会将其转换为当前系统的分隔符(Unix 系统为 /,Windows 为 \)。

如果第一个元素是 Path 对象,则后面的元素(在 / 之后)可以是 str

它将由此创建一个新的 Path 对象。

如果您想要一个关于使用 Path() 的快速指南,您可以查看 Real Python 上的这篇文章Trey Hunner 的这篇文章

在上面的代码中,我们还明确地将 config_path 声明为类型 Path,以帮助编辑器提供完成和类型检查。

config_path: Path = Path(app_dir) / "config.json"

否则,它可能会认为它是一个子类型(PurePath)并停止为某些方法提供完成。