其实mode可以用字典算,kv对,虽然笨但是hash算的时候,用空间算时间,因为在标准库也是查表,把9个都给你写出来
硬链接数其实是有的
这些都直接有现成的
需要修改下时间格式
有时间戳没有时间对象,典型的调类型方法,fromtimestamp,(到这里还差的比较远,可以用格式化的方式,比如字符串的format,还可以c风格
还可以用时间对象的方法(strptime,strftime,一个是解析,一个是格式化
是date对象的
时间对象是要反复练习的东西
现在还有一个文件的大小。现在是4096怎么转换成4k,需要写一个函数gethuman
给一个数值告诉多少兆
第一次4096/1000
4不大于1000就是配单位的事情了
现在就缺这个东西了
还可以再换成一种写法,这样字符串就比列表小很多,如果嫌弃空格,可以后面用rstrip把空格去掉
剪切到上面去
黏贴
这个函数该什么时候去用
如果需要人性化显示就用它,否则直接打印st.size(整型),所以需要转成str
直接-h是没用的,要lh才有用
这里先false,不然两个h就冲突了
现在添加选项参数
执行一遍
还有一个要解决的是它
、all选项默认是false,默认是不允许看到点开头的,就需要在遍历的时候,判断,因为你不遍历怎么知道有没有带点.的
就是类似写成这样,但是需要和all做关联
在不能不显示所有的情况下,同时用.开头,需要用and,这样就看不到。abc了
这样基本达到我们要实现的东西
要给路径了
加_下划线,代表我们还可以再封装一次
从这开始往上
到这里
tab一下,外面套一层iterdir()
这个地方的参数就是外面想要的参数
把这个参数放到外层去,它交互参数,根据里面的来得到想要的东西
修改下名字
这些全部剪切
这上面就变成了一个整个的函数定义
把刚才剪切的放到下面,向右缩进
整个相当于再找个模块运行,主模块才接收参数,不是主模块就没必要接收参数
传一下参数 o:/ -lah
考虑函数返回什么
把上面的参数加进去执行就打印出来了
但是函数不是应该来打印的,而是扔出一个东西,具体值
result
现在看不出来,加逗号现在这样写是有好处的
是否需要排序
能不能按照name排序,一个目录下有多少文件是有限个,listdir找个函数是个生成器,加了yield,目录下有多少文件是一定的,
这就是为什么用元组进行封装了
这个是返回一个列表,大不了这样
告诉是返回一个可迭代对象,外面套一层list就可以,现在是惰性求值,用for循环一个个迭代即可
立即求值就可以用list直接求出来即可
直接拿到所有的值
列表里是一个个元组,把列表里的元组一个个格式化输出,加个map就可以搞定了
这里就使用了生成器
yield from相当于一个for循环,for循环里面写了yield
还有一些小问题
一切从这开始,一点点测试
传一个可迭代对象
nargs表示后面能接几个参数
但是选项不是参数,就有了store_true和false
const代表没有给值就填一个选项进来
参数搞定了就可以 写业务代码了
从显示本文件夹开始
函数合一就可以弄成参数的样子
构造元组就有使用索引-1了
len-1就等于-1
只要不是windows都可以运行这两个,windows不支持
3.2提供了解析参数的,还是比较方便的argparse