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的数值会比文件浏览器中看到的小,它是纯粹数学求和,文件浏览器是以磁盘存储计算,含空白磁盘簇占用。〗

相关推荐
稻草人4783 分钟前
安装OCA模块
python
用户5065659277766 分钟前
回测引擎的五个工程细节:3000 根 4 小时 K 线跑出来的成本差
python
黑妹天下第一乖19 分钟前
255 次尝试就能恢复 CA 私钥?这次 TLS 信任链事故,值得每个 AI 开发者警惕
人工智能·python·https·tls·信任链·ca
happylifetree35 分钟前
Python68:核心语法-函数进阶-匿名函数(lambda表达式)
python
专注仿真40 分钟前
从「能跑通」到「能交付」:一套可直接落地的电商用户行为分析平台(Python + SQLite/MySQL + Streamlit 全栈源码与部署文档)
python·mysql·sqlite
小小张说故事41 分钟前
Python 的 for 到底怎么跑起来的?拆开迭代协议:GET_ITER 之后 FOR_ITER 在循环什么
python
凯瑟琳.奥古斯特1 小时前
动态调优IoU提升OCR文本合并精度
开发语言·python·算法
蒸鱼Yuzheng2 小时前
自动化长任务治理:租约、心跳、孤儿进程与安全回收
自动化测试·python·任务调度·可靠性·分布式系统
2601_962885723 小时前
从 baostock 迁移到 AlphaFeed:接口对照与代码迁移指南
python
AI情绪识别开源3 小时前
检信ALLEMOTION 标定治理与信号质量闸门 · 老年无感认知评估分析器
python