【发布时间】:2020-07-03 03:10:31
【问题描述】:
我想要完成的更大范围是这个。我有一个 Windows directory 可以包含可变数量的 .csv 文件。这些文件是作为 PLC 的测试结果生成的。它们通过文件名来区分。每个循环测试都会生成 2 个.csv 文件。第一个文件名包含一个订单号、一个- 分隔符和字符串UP。第二个文件是相同的,只是字符串被替换为DOWN。
示例文件名:1234567890-UP 或 1234567890-DOWN
目录示例:1234567890-UP.csv1234567890-DOWN.csv2000005001-UP.csv2000005001-DOWN.csv
我正在尝试编写一个循环遍历目录中所有文件名并将它们存储在列表中的脚本。然后从元素中删除除订单号之外的所有内容。然后删除重复的元素。使用上面的示例目录,我将有一个类似于[1234567890,2000005001] 的列表。我已经完成了这么多。
现在我要做的是遍历文件名的原始列表并将它们与我的新列表进行比较,以创建一个嵌套列表,该列表根据它们的订单号分隔文件。使用相同的示例目录,列表将如下所示:[[1234567890-UP.csv,1234567890-DOWN.csv],[2000005001-UP.csv,2000005001-DOWN.csv]]
最后,我想遍历这个列表并根据列表索引将.csv 文件合并在一起。
可能有一种我忽略的更简单的方法可以为我省去很多麻烦。
我当前使用嵌套 for 循环填充嵌套列表的代码如下所示
nestedlist=[]
for x in range(len(filenamelist)):
for y in range(len(filteredlist)):
if filteredlist[y] in filenamelist[x]:
nestedlist[y].append(filenamelist[x]
这会返回错误Index out of range。这是因为 nestedlist 的大小从未定义过。我不确定该怎么做或最好的方法是什么?
【问题讨论】:
-
所以你想遍历初始列表并创建一个新的配对的嵌套列表??