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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73b182ab5ac0621142ca5320981a6b0cab4d0160b5ea435419f6e73da63b23d2 |
|
MD5 | ee775d70e5a6fbbf7d39412a5d6bdd92 |
|
BLAKE2b-256 | 332ab09c8197d2288f305c983ab5d84f9cfe8b46a20bcd4b80c7805d13169d12 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ba92f3a6e30e7b7c1adb2f97735bdb61c3073cad1856f3c0604c96cb82c1b55 |
|
MD5 | 45ab18092755d401263f2473056e7a76 |
|
BLAKE2b-256 | 865b244609962b44213bed88f007595d36056060c838e7eb763c559b59009b5e |