求类似os.listdir()的函数:可按需重复添加目录项至列表
实现自定义目录列表重复项功能
要实现按指定次数重复目录项的需求,可以通过以下步骤完成:
核心思路
- 用
os.listdir()获取目录下的文件名 - 去除每个文件名的后缀(比如
.png) - 基于预设的重复次数映射,将每个文件名重复对应次数后加入结果列表
代码实现
import os def custom_repeat_listdir(path, repeat_counts): result_list = [] # 遍历目录下的所有项 for filename in os.listdir(path): # 分离文件名和后缀,取纯名称部分 file_name = os.path.splitext(filename)[0] # 获取当前文件对应的重复次数,默认重复1次 times = repeat_counts.get(file_name, 1) # 将文件名重复指定次数并添加到结果列表 result_list.extend([file_name] * times) return result_list # 示例:定义每个文件名对应的重复次数 repeat_map = { 'Bacon': 4, 'Basics': 2, 'Elf': 3, 'Prisoner': 2 } # 替换成你的目标目录路径 target_path = './your_target_directory' # 调用函数并打印结果 print(custom_repeat_listdir(target_path, repeat_map))
代码说明
os.path.splitext(filename):将文件名拆分为(名称, 后缀)的元组,比如'Bacon.png'会得到('Bacon', '.png')repeat_counts.get(file_name, 1):从映射字典中获取重复次数,如果找不到对应名称,默认重复1次[file_name] * times:生成包含times个相同文件名的临时列表,再用extend加入结果列表
运行后就能得到你期望的重复项列表。
内容的提问来源于stack exchange,提问作者Vacho111
相关产品推荐
相关产品推荐

