我有n个文件.txt,其中每个文件都包含一个矩阵。我想为每个矩阵分配一个变量,读取相应的文件。
我不知道命令行参数指定的文件数。
因此,我需要一种" for循环"它一次读取一个文件,并将相应的矩阵分配给变量。
例如:
python allocate_matrices.py file1 file2 file3
其中: file1是:
0 1 2
3 4 5
6 7 8
file2是:
0 1
3 4
6 7
和file3是:
0 1 2 5
3 4 5 6
6 7 8 7
我的想法是使用一种循环:
import numpy as np
for i in range(len(sys.argv)-1):
file[i] = np.loadtxt(sys.argv[i+1])
但我不知道我应该使用什么样的结构...
答案 0 :(得分:1)
我不知道命令行参数指定的文件数。
当然可以:len(sys.argv) - 1
。
即使你没有,Python中的列表也不是固定大小。那么为什么不这样做:
matrices = [] # Allocate an empty list
for filename in sys.argv[1:]: # Skip argv[0], name of script
mat = np.loadtxt(filename) # Read a matrix
matrices.append(mat) # Append it to the list