如何将遍历目录的计数整合成单个可索引列表
问题核心原因
- 存储序号的列表未在循环外初始化:原代码在遍历单个目录的内部循环中创建变量
c,每遍历一个目录就会生成一个全新的单元素列表,不存在可累积存储所有序号的统一容器。 - 列表元素生成逻辑错误:原代码将累计目录数的数值转成字符串后逐字符拆分转整数,本质是把数字的每一位拆成列表元素,和“存储连续目录序号”的需求完全不符。
- 打印时机过早:每处理完一个目录就立即打印当前的单元素列表,最终输出多行独立的
[1]/[2]/[3]/[4]结果,而非整合后的完整列表。
修正后的实现代码
import os def select_number(which_path): # 在循环外初始化空列表,作为所有序号的统一存储容器 c = [] totalFolder = 0 for roots, dirs, files in os.walk(which_path): for dir in dirs: totalFolder += 1 # 将累计生成的序号直接追加到统一列表中 c.append(totalFolder) # 全路径遍历完成后,输出整合后的完整序号列表 print(c) select_number('/home/runner/TestP1')
运行效果说明
- 代码执行完成后会输出整合后的完整列表
[1, 2, 3, 4],存储在c变量中的所有序号可直接通过c[n]的索引形式调用,满足后续取用需求。
内容的提问来源于stack exchange,提问作者floated variable
相关产品推荐
相关产品推荐

