我有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=',')
是否有一种更简单的方法来导入所有数据文件,而无需手动输入所有数据文件?
答案 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