我一直在使用一些代码将单独填充重要数据的图层导出到文件夹中。我要做的下一件事是将这些层中的每一层都放入不同的程序中,以便我可以将它们组合起来并进行一些不同的测试。我知道如何做的当前方式是逐个导入它们(如下所示)。
fn0 = 'layer0'
f0 = np.genfromtxt(fn0 + '.csv', delimiter=",")
fn1 = 'layer1'
f1 = np.genfromtxt(fn1 + '.csv', delimiter=",")
继续这种方式的问题是我可能一次最多处理100个图层,并且必须单独导入每个图层是非常不方便的。
有没有办法可以改变我的代码来迭代地执行此操作,以便我可以拥有类似的代码:
N = 100
for i in range(N)
fn(i) = 'layer(i)'
f(i) = np.genfromtxt(fn(i) + '.csv', delimiter=",")
如果您知道任何方法,请告诉我!
答案 0 :(得分:0)
您可以使用以下字符串格式
N = 100
f = [] #create an empty list
for i in range(N)
fn_i = 'layer(%d)'%i #parentheses!
f.append(np.genfromtxt(fn_i + '.csv', delimiter=",")) #add to f
parentheses!
我的意思是他们很重要'字符。它们表示函数调用和元组,所以你不应该在变量中使用它们(永远!)
答案 1 :(得分:0)
穆罕默德阿塔尔的回答是正确的。但是,您不应再使用%
打印。根据PEP 3101(https://www.python.org/dev/peps/pep-3101/),它应该被format()
取代。此外,由于您有超过100个文件,因此可能会感谢layer_007.csv
这样的格式。
尝试类似:
dataDict=dict()
for counter in range(214):
fileName = 'layer_{number:03d}.csv'.format(number=counter)
dataDict[fileName] = np.genfromtxt( fileName, delimiter="," )
使用字典时,您可以稍后使用文件名直接访问数据;但它没有被排除,因此您可能更喜欢Mohammad Athar的列表版本。