sumdir——一个伪python.built-in的“术法”打造

sumdir------一个伪python.built-in的"术法"打造

【笔者致歉:由于我的OPPO A11X太老太次,无法用CSDN安卓app升级了内核的MD编辑器渲染分享内容文本,导致两个多月(7月中旬至9月底)没有分享一个字符(换设备可以解决所有问题,但问题是目前没有"机会"😅)。吾退而求其次,仅仅以纯文本分享"核心"句点+几张图片(一般为截屏图片),最大限度降低阅读的不适。🙏☺️】

`代码运行效果截屏图片:`

附:`python源码:`

```python

#!/usr/bin/env python3

import os

author = '梦幻精灵_cq'

version = '2.0' # 终结版

built_time = '2026-10-01 09:42'

finaledit_time = '2026-10-01 10:03'

sumdir = lambda path: sum(

file.stat().st_size # 提取文件大小

for file in (_ for _ in os.scandir(path) if _.is_file()) # 筛选指定目录文件

) # sum目录下所有文件大小

if name == 'main':

color = lambda c=90: f"\x1b[{c}m" # 定义终端渲染状态机设定指令装载系统

cwd = file:__file__.rfind('/') + 1 # 此方法提取当前目录缺陷:永远指向*.py文件存储目录。

cwd = os.getcwd() # 此法有坑,如果不当前目录run脚本,它就返回当前工作目录,这一般没得卵用,除非特需。

paths = (

cwd,

'/sdcard/Documents/csdn/',

'/sdcard/Documents/',

'/sdcard/Documents/csdn/blog_infos/',

'/sdcard/Documents/csdn/newblog/',

'/sdcard/Documents/csdn/newblog/lib/',

'/sdcard/Documents/poem/'

)

for path in paths:

print(

f"\n{color()}目录:\n{color(36)}{path}{color()}\n目录文件大小:{color(96)}{sumdir(path)}"

)

print(color(0)) # 终端渲染状态机设定控制权移交系统

```

我突发"奇想",find_newestfile派生出一个sumdir。😎💪

直接打印字节数不好看,得手搓一个字节数单位转换器b_ruler。🤗

```python

b_ruler = lambda size: (

f"{size/1024**3:.2f}gb" if size >= 1024**3 # 剥离GB

else f"{size/1024**2:.2f}mb" if size >= 1024**2 # 剥离MB

else f"{size/1024:.2f}kb" if size >= 1024 # 剥离KB

else str(size) # 为统一输出字节int to str

)

print(

f"\n{b_ruler(66889) = }"

f"\n{b_ruler(9494994) = }"

f"\n{b_ruler(1009494994).upper() = }"

)

```

`代码运行效果截屏图片:`

附完整的sumdir源码及Demo截屏:

```python

#!/usr/bin/env python3

import os

author = '梦幻精灵_cq'

version = '2.0' # 终结版

built_time = '2026-10-01 09:42'

finaledit_time = '2026-10-01 13:21'

sumdir = lambda path: sum(

file.stat().st_size # 提取文件大小

for file in (_ for _ in os.scandir(path) if _.is_file()) # 筛选指定目录文件

) # sum目录下所有文件大小

b_ruler = lambda size: (

f"{size/1024**3:.2f}gb" if size >= 1024**3 # 剥离GB

else f"{size/1024**2:.2f}mb" if size >= 1024**2 # 剥离MB

else f"{size/1024:.2f}kb" if size >= 1024 # 剥离KB

else str(size) # 为统一输出字节int to str

)

if name == 'main':

color = lambda c=90: f"\x1b[{c}m" # 定义终端渲染状态机设定指令装载系统

cwd = file:__file__.rfind('/') + 1 # 此方法提取当前目录缺陷:永远指向*.py文件存储目录。

cwd = os.getcwd() # 此法有坑,如果不当前目录run脚本,它就返回当前工作目录,这一般没得卵用,除非特需。

paths = (

cwd,

'/sdcard/Documents/csdn/',

'/sdcard/Documents/',

'/sdcard/Documents/csdn/blog_infos/',

'/sdcard/Documents/csdn/newblog/',

'/sdcard/Documents/csdn/newblog/lib/',

'/sdcard/Documents/poem/'

)

for path in paths:

print(

f"\n{color()}目录:\n{color(36)}{path}{color()}\n目录文件大小:{color(96)}{b_ruler(sumdir(path)).upper()}"

)

print(color(0)) # 终端渲染状态机设定控制权移交系统

```

`程序运行效果截屏图片:`

〖申明一下:sumdir的数值会比文件浏览器中看到的小,它是纯粹数学求和,文件浏览器是以磁盘存储计算,含空白磁盘簇占用。〗

相关推荐
锋行天下6 小时前
langgraph 后端发自定义数据,前端接收方法概括
人工智能·python
benchmark_cc8 小时前
用 QuantDash 读取单只股票五档盘口:抽样、缺失值检查与复现记录
python·数据分析·pandas·量化交易·股票数据·quantdash
曲径海盗8 小时前
【Python 学习第 55 天】列表基础
python·学习笔记·编程入门
专注仿真8 小时前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法
jyOverQ9 小时前
我写了一个 CSDN Markdown 图片助手:告别本地图片逐张上传
python·工具·csdn
刘马想放假12 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket
2601_9679873713 小时前
python判断变量名不要调用任何函数实现
python·函数·语法·判断·变量名
卷无止境13 小时前
SALib敏感性分析的python库学习笔记
后端·python
duansamve14 小时前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
特立独行的猫A15 小时前
少 3 个环节、少 1 次 ABI、少 3500 行代码:cj-tauri 与 Ionic/Capacitor 的鸿蒙桥接机制对比
java·后端·python