在 python 中使用 dill 从文件夹加载多个文件?

Load Multiple files from Folder using dill in python?

我有一个包含 100 个 *.sav 文件的文件夹,我必须将所有文件加载到列表中,文件名保存为 my_files_0、my_files_1、my_files_2、my_files_3...

所以,我尝试了:

import dill
my_files = []
files_name_list = glob.glob('c:/files/*.sav')
for i in np.arange(1, len(files_name_list)):
    with open('c:/files/my_files_%i.sav'%i, 'rb') as f: my_files = dill.load(f)
my_files

此处my_files列表中只有一个文件。我需要列表中的所有 100 个文件,因此我可以根据索引 my_files[0]…..

访问它们

我用了数组而不是列表,它起作用了

file_array=[0]*len(files_name_list)
for i in np.arange(0, len(file_name_list)):
    with open('c:/files/my_files_%i.sav'%i, 'rb') as f: 
        file_array[i] = dill.load(f)
        f.close()

您在 my_files 中只有一个文件的原因是您不断地覆盖最后一个结果。我想你的意思是在每次遍历列表时附加新结果:

import dill
my_files = []
files_name_list = glob.glob('c:/files/*.sav')
for i in np.arange(1, len(files_name_list)):
    with open('c:/files/my_files_%i.sav'%i, 'rb') as f:
        my_files.append(dill.load(f))

此外,请注意在您的解决方案中,当您使用 with 打开 f 时不需要执行 f.close() -- 它在离开 with块。