如何使用一个函数或for循环导入许多csv数据文件?

时间:2018-06-24 13:31:18

标签: python python-3.x numpy

我有109个要使用函数或for循环导入的csv文件。到目前为止,我已经使用以下功能手动导入了文件:

import numpy as np 

plain_table1 = np.genfromtxt('File-path\File-name1.csv', delimiter=',')
...
plain_table109 = np.genfromtxt('File-path\File-name109.csv', delimiter=',')

是否有一种更简单的方法来导入所有数据文件,而无需手动输入所有数据文件?

3 个答案:

答案 0 :(得分:2)

使用字典理解,您可以构造字典来存储数据,并使用数字键来标识数组:

import numpy as np 

d = {i: np.genfromtxt(f'File-path\File-name{i}.csv', delimiter=',') \
     for i in range(1, 110)}

然后通过File-name100.csv访问d[100]中的数组。

答案 1 :(得分:0)

以最简单的形式,使用for循环和一个范围(假设您的文件名实际上从1到109编号)。在循环内部,您可以追加一个列表:

import numpy as np 

first = 1
last = 109
plain_tables = []

for i in range(first, last + 1):
    plain_tables.append(np.genfromtxt('File-path\File-name%s.csv' % i, delimiter=',')

请注意字符串中的%s。那是一个占位符。可以与%运算符一起使用,以将变量转换为字符串。

Python中存在其他功能,例如list comprehensions

plain_tables = [np.genfromtxt('File-path\File-name%s.csv' % i, delimiter=',')
                for i in range(first, last + 1)]

答案 2 :(得分:0)

只要所有文件均为'.CSV',

IEnumerable