Loading... ## 前言 在使用Python开发的过程, 会不时遇到很好用的各种工具库, 这里用作笔记简单记录收藏下. 持续更新中... --- ## box **简介:** `Box`库可以将字典对象转换成可以通过属性访问的对象, 此外还提供了许多高级功能,如冻结数据、转换为JSON、从文件加载等, 用作全局配置解析场景很实用. 官方WIKI链接: https://github.com/cdgriffith/Box/wiki 记录时间: 2024/03/26 **安装:** ```bash pip install python-box ``` 代码示例 ```python from box import Box # 1. 将字典对象转换, 使得可以通过.key获取字典值 config = Box({ "database": { "host": "localhost", "port": 3306, "username": "user", "password": "pass" }, "api": { "endpoint": "https://api.example.com", "token": "secrettoken" } }) # BOX为dict子类 isinstance(config, dict) # 输出: true # 访问配置 print(config.database.host) # 输出: localhost print(config.api.endpoint) # 输出: https://api.example.com # 修改配置 config.api.token = "newsecrettoken" # 添加新的配置 config.logging = {"level": "debug"} print(config.logging.level) # 输出: debug # 2. 从文件加载/保存到文件 # 支持json/yaml/csv等, 参见: https://github.com/cdgriffith/Box/wiki/Converters my_box.to_json(filename="films.json") new_box = Box.from_json(filename="films.json") new_box.keys() # dict_keys(['funny_movie', 'weird_movie', 'best_movie', # 'good tv series', 'amazing tv series']) ``` --- ## 配置类 常用的 | 名称 | 安装 | 示例 | | -------------- | -------------------------- | ------------------------------------------------------------------------------- | | yacs | pip install yacs | https://github.com/rbgirshick/yacs | | pyyaml | pip install PyYAML | https://pyyaml.org/wiki/PyYAMLDocumentation | | ml-collections | pip install ml-collections | https://pypi.org/project/ml-collectionshttps://github.com/google/ml_collections | | json/json5 | pip install json5 | json5相比json, 多了支持源文件注释的功能 | 代码示例 ```python import ml_collections def get_testing(): """Returns a minimal configuration for testing.""" config = ml_collections.ConfigDict() config.patches = ml_collections.ConfigDict({'size': (16, 16)}) config.hidden_size = 1 config.transformer = ml_collections.ConfigDict() config.transformer.mlp_dim = 1 config.transformer.num_heads = 1 config.transformer.num_layers = 1 config.transformer.attention_dropout_rate = 0.0 config.transformer.dropout_rate = 0.1 config.classifier = 'token' config.representation_size = None return config ``` --- ## 控制台格式化 文字/背景颜色以及其他样式; 表格或者形式直接打印 | 名称 | 安装 | 功能 | 说明/示例 | | ----------- | ----------------------- | -------------------------------- | ------------------------------------- | | termcolor | pip install termcolor | 控制台文字背景颜色与其它样式控制 | https://pypi.org/project/termcolor/ | | | | | | | prettytable | pip install prettytable | 表格形式直接将数据输出在控制台中 | https://pypi.org/project/prettytable/ | | | | | | ## THE END 本文作者:将夜 本文链接:https://zoe.red/2024/368.html 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。 最后修改:2024 年 04 月 02 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏