在for循环中使用字符串作为整数计数器(aka索引)

时间:2015-11-04 10:26:53

标签: python arrays indexing

我有一个包含 n csv个文件的文件夹。可以在for循环中访问和读取它们,如下所示:

#do stuff
for file in os.listdir(directoryPath):
    if file.endswith(".csv"):
       #do stuff

在for循环之外,许多numpy数组初始化为零。每个数组都必须携带位于当前csv文件中的特定值。

我的问题:是否可以使用file,我认为stringinteger,以填充我的数组像这样的实例:array1[file]=numpy.genfromtxt(file,delimiter=',')[:,2]

我担心这一行不起作用,因为file不能像integer那样对待,所以你会如何处理?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用enumerate生成元组,将项目的索引与项目本身配对:

for i, file in enumerate(os.listdir(directoryPath)):
    if file.endswith(".csv"):
       array1[i] = numpy.genfromtxt(file, delimiter=',')[:,2]

或者您可以将Numpy数组存储在dictionary中,该数据由关联的文件名直接编入索引:

arrays = {}
for file in os.listdir(directoryPath):
    if file.endswith(".csv"):
       arrays[file] = numpy.genfromtxt(file, delimiter=',')[:,2]

或使用OrderedDict

from collections import OrderedDict

arrays = OrderedDict()
for file in os.listdir(directoryPath):
    if file.endswith(".csv"):
       arrays[file] = numpy.genfromtxt(file, delimiter=',')[:,2]