批量收集文件夹路径时代码报错,求修正方案以实现目标效果
问题:生成文件夹路径集合时触发索引错误
我想创建一个收集所有文件夹路径的集合,代码如下:
folder_out = [] for a in range(1,80): folder_letter = "/content/drive/MyDrive/project/Dataset/data/" folder_out[a] = os.path.join(folder_letter, str(a)) folder_out.append(folder_out[a])
运行后触发 IndexError: list assignment index out of range 错误。
期望实现的效果是生成包含从/content/drive/MyDrive/project/Dataset/data/1到/content/drive/MyDrive/project/Dataset/data/79的路径列表。
解决方案
错误原因
你一开始把folder_out定义成了空列表,却直接用folder_out[a]给指定位置赋值——空列表里根本没有索引为1、2...的位置,自然会触发索引越界错误。而且后面的append属于重复操作,完全没必要。
修复后的代码
方式1:简化循环逻辑
把固定路径提到循环外,避免重复定义,直接将拼接好的路径添加到列表:
import os folder_out = [] folder_letter = "/content/drive/MyDrive/project/Dataset/data/" for a in range(1, 80): folder_path = os.path.join(folder_letter, str(a)) folder_out.append(folder_path)
方式2:使用列表推导式(更简洁)
一行代码搞定,Python风格更明显:
import os folder_letter = "/content/drive/MyDrive/project/Dataset/data/" folder_out = [os.path.join(folder_letter, str(a)) for a in range(1, 80)]
两种方式都能生成你需要的路径列表,彻底解决索引错误问题。
内容的提问来源于stack exchange,提问作者Nara Nart
相关产品推荐
相关产品推荐

