Skip to main content

statsdir.

Project description

Python statsdir.

安装

你可以通过 pypi 安装

pip install -U statsdir

使用

用作模块

提供了一个函数 statsdir() 可用于遍历目录树

>>> from statsdir import statsdir
>>> help(statsdir)
Help on function statsdir in module statsdir:

statsdir(top=None, /, min_depth: int = 0, max_depth: int = -1, predicate: None | collections.abc.Callable[..., None | bool] = None, onerror: bool | collections.abc.Callable[[OSError], Any] = False, follow_symlinks: bool = False, key: None | collections.abc.Callable = None) -> dict
    目录树遍历统计
    
    :param top: 根路径默认为当前目录
    :param min_depth: 最小深度小于 0 时不限参数 `top` 本身的深度为 0它的直接跟随路径的深度是 1以此类推
    :param max_depth: 最大深度小于 0 时不限
    :param predicate: 调用以筛选遍历得到的路径可接受的参数与参数 `top` 的类型一致参见 `:return:` 部分
    :param onerror: 处理 OSError 异常如果是 True抛出异常如果是 False忽略异常如果是调用以异常为参数调用之
    :param follow_symlinks: 是否跟进符号连接如果为否则会把符号链接视为文件即使它指向目录)。
    :param key: 计算以得到一个 key相同的 key 为一组对路径进行分组统计
    
    :return: 返回统计数据形如
        {
            "path": str,     # 根路径 
            "total": int,    # 包含路径总数 = 目录数 + 文件数
            "dirs": int,     # 包含目录数
            "files": int,    # 包含文件数
            "size": int,     # 文件总大小(符号链接视为文件计入)
            "fmt_size": str, # 文件总大小,换算为适当的单位:B (Byte), KB (Kilobyte), MB (Megabyte), GB (Gigabyte), TB (Terabyte), PB (Petabyte), ...
            # OPTIONAL: 如果提供了 key 函数
            "keys": {
                a_key: {
                    "total": int, 
                    "dirs": int, 
                    "files": int, 
                    "size": int, 
                    "fmt_size": str, 
                }, 
                ...
            }
        }
    

用作命令

提供一个命令行工具,用于导出目录树

$ statsdir -h
usage: statsdir [-h] [-m MIN_DEPTH] [-M MAX_DEPTH] [-s SELECT] [-se] [-k KEY] [-ke] [-fl] [-v] [paths ...]

目录树遍历统计

positional arguments:
  paths                 文件夹路径,多个用空格隔开,默认从 stdin 读取

options:
  -h, --help            show this help message and exit
  -m MIN_DEPTH, --min-depth MIN_DEPTH
                        最小深度,默认值 0,小于 0 时不限
  -M MAX_DEPTH, --max-depth MAX_DEPTH
                        最大深度,默认值 -1,小于 0 时不限
  -s SELECT, --select SELECT
                        对路径进行筛选,提供一个表达式(会注入一个变量 path,类型是 pathlib.Path)或函数(会传入一个参数,类型是 pathlib.Path)
  -se, --select-exec    对 -s/--select 传入的代码用 exec 运行,其中必须存在名为 select 的函数。否则,视为表达式或 lambda 函数
  -k KEY, --key KEY     对路径进行分组统计,提供一个表达式(会注入一个变量 path,类型是 pathlib.Path)或函数(会传入一个参数,类型是 pathlib.Path)
  -ke, --key-exec       对 -k/--key 传入的代码用 exec 运行,其中必须存在名为 key 的函数。否则,视为表达式或 lambda 函数
  -fl, --follow-symlinks
                        跟进符号连接,否则会把符号链接视为文件,即使它指向目录
  -v, --version         输出版本

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

statsdir-0.0.2.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

statsdir-0.0.2-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file statsdir-0.0.2.tar.gz.

File metadata

  • Download URL: statsdir-0.0.2.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.8 Darwin/23.5.0

File hashes

Hashes for statsdir-0.0.2.tar.gz
Algorithm Hash digest
SHA256 73b182ab5ac0621142ca5320981a6b0cab4d0160b5ea435419f6e73da63b23d2
MD5 ee775d70e5a6fbbf7d39412a5d6bdd92
BLAKE2b-256 332ab09c8197d2288f305c983ab5d84f9cfe8b46a20bcd4b80c7805d13169d12

See more details on using hashes here.

File details

Details for the file statsdir-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: statsdir-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.8 Darwin/23.5.0

File hashes

Hashes for statsdir-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6ba92f3a6e30e7b7c1adb2f97735bdb61c3073cad1856f3c0604c96cb82c1b55
MD5 45ab18092755d401263f2473056e7a76
BLAKE2b-256 865b244609962b44213bed88f007595d36056060c838e7eb763c559b59009b5e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page