我想迭代特定文件夹中的文件列表,并通过对单词或三元组单词来存储文件名。我创建了以下代码:
for file_name in os.listdir(path):
file_name_aslist = file_name.split()
o = [(file_name_aslist[x], file_name_aslist [x+1]) for x in range(0, len(file_name_aslist ), 2)]它返回此错误:
IndexError: list index out of range表达式在单个列表上工作,但不想在循环中工作:例如:
list = ['ra', 'ti', 'kaa', 'esss', 'fm', 'am']
print([(list[x], list[x+1]) for x in range(0, len(list), 2)])
[('ra', 'ti'), ('kaa', 'esss'), ('fm', 'am')]此外,当我尝试在三胞胎上迭代时,也拒绝
print([(list[x], list[x+1], list[x+2]) for x in range(0, len(list), 3)])
IndexError: list index out of range发布于 2020-02-02 19:31:08
第一件事:在使用“单一列表”的示例中,list不一定表示原始的file_name_aslist。如果您的文件名不包含空格,file_name_aslist将是一个具有单个元素的列表,即文件名本身。对于这些情况,很容易验证为什么file_name_aslist [x+1]会抛出一个IndexError。
您真的希望file_name_aslist是一个包含多个元素的列表吗?您是否试图按照其他条件进行拆分,如. (可能通过文件扩展名进行拆分,这也是一种糟糕的方法)?
https://stackoverflow.com/questions/60029593
复制相似问题