我有一个包含 n csv
个文件的文件夹。可以在for循环中访问和读取它们,如下所示:
#do stuff
for file in os.listdir(directoryPath):
if file.endswith(".csv"):
#do stuff
在for循环之外,许多numpy
数组初始化为零。每个数组都必须携带位于当前csv
文件中的特定值。
我的问题:是否可以使用file
,我认为string
为integer
,以填充我的数组像这样的实例:array1[file]=numpy.genfromtxt(file,delimiter=',')[:,2]
?
我担心这一行不起作用,因为file
不能像integer
那样对待,所以你会如何处理?谢谢!
答案 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]