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

相关推荐
weixin_440730503 小时前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
天赐范式3 小时前
天赐范式第181天:让视图开始切换——PBFT视图切换与从safety到liveness的跨越
python·pbft·数字生命·天赐范式·动态运行时·拜占庭容错
sugarzhangnotes3 小时前
【无标题】
开发语言·人工智能·python
weixin_447195294 小时前
【无标题】
pytorch·python
迅猛龙办公室4 小时前
Python实现简单的人名对话
python
阿坨4 小时前
firestart:一行命令启动你的日常应用和网页
python·pypi·cli·click
老歌老听老掉牙4 小时前
麻花钻切屑形态演变的力学机制与临界条件分析
python·算法·钻头
happylifetree5 小时前
Python18(补充):练习
python
weixin_416667966 小时前
银河麒麟V10看门狗试验-1
网络·chrome·python