我正在尝试创建一个比较多个文件数据的函数。通过对话窗口(来自GUI平台Tkinter)
选择文件def compare_datafiles(file_name):
data = np.genfromtxt(file_name, dtype=float, delimiter=',', skiprows=(2), usecols=(1,2,3,4,5,6), skip_footer=(3))
initial = data[0,:]
final = data[-1,:]
weightDiff=final-initial
data=np.row_stack((data, weightDiff))
totalWD=sum(data[4,:]) # calculate total weight
distr=np.round((weightDiff/totalWD),2)
print distr
return distr
for x in selectedFiles:
M = compare_datafiles(x)
当我使用两个输入文件运行该函数时,它会打印两个数组:
runfile(r'C:\Users...)
[ 0.23 0.04 0.1 0.14 0.12 0.38]
[ 0.22 0.05 0.13 0.16 0.12 0.32]
但只返回其中一个:
M
array([ 0.22, 0.05, 0.13, 0.16, 0.12, 0.32])
如何让它返回两个数组?
答案 0 :(得分:1)
在你的代码中,你写道:
for x in selectedFiles:
M = compare_datafiles(x)
您在每个循环上重新分配给M
,因此只存储最后一个值。您可以将M
列为一个列表并附加到该列表,或使用列表解析:
>>> M = [compare_datafiles(x) for x in selectedFiles]