文件夹的遍历

电脑上的文件夹遍历函数os.walk(path)函数,是一切文件夹操作的基础。有了这个函数,全部文件夹与文件的操作就有了基础。本文要谈的是网盘上的文件夹遍历。考虑使用bypy工具搭建自己的网盘自动传输系统,需要对云文件夹进行遍历,如果建立同样的函数,将能为所有相关文件夹的文件的操作建立坚实的基础。

这个问题并不简单。因为文件夹具有循环特征。企图遍历完一个子文件夹再进入下一个子文件夹是困难的,因为遍历完子文件的操作就是遍历完全部文件夹的操作,它们在结构上是一致的。这引起了我对复杂程序结构分析的兴趣。

首先,要考虑突破这种陷阱。我考虑的是从第一层开始,到第二层,到第三层,一层一层遍历完文件夹,而非遍历完所有某个子文件夹的内容。

第二,构建循环体,这个循环体是对一个列表的操作,这个列表的文件夹进行操作,产生一系列的子文件夹,重新构成列表,把得到的新列表,赋给上一次被操作的那个列表用到的名字,就实现了循环。

第三,我们的操作基础是基于bypy本身提供的list函数,它会提供当前文件夹的子文件夹和文件信息,类似于os的listdir函数。不过它只能显示在shell中,所以要调用subprocess的runcmd函数,让运行结果写入文本文件,再通过文本文件的读写传递信息解决这个问题。

第四,对循环体的分析表明,需要在一个一般性变量的位置,即位于n的层级,不能指定具体的层级,只能是变量n,往上回溯到初始文件夹,获得路径才能调用list函数产生子文件夹列表。这就要求我们改造针对单层文件夹的 list函数,使在当前的n层级的操作获得n-1级的文件夹的信息,从而能够回溯到起点。

第五,循环体在初始位置很难与一般情况共用同样的程序代码组,我们可以修改在第一次循环时的处理就是了。循环熔断的条件,可以观察到产生的子文件夹列表为空时就可以break了。

下面是草图分析。在用草图进行分析完之后,整个代码的编写出奇顺利。因此正确的程序编写是要进行草图分析的,慢慢推断研究它各部分应该具备的特征和规律,并分析实现这些功能需要的信息和信息的传递。程序本质上是一台复杂的精密的机器。程序延展了数学的运算范围,并以其自身的逻辑使我们获得明确的输入输出的规律。有些结果是偏离甚至是不可知的诡异的,它指向某种神秘的精神灵性的层面。这些正是它的魅力所在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值