在python中使用dill从文件夹加载多个文件?
我有一个包含100个*.sav文件的文件夹,我必须将所有文件加载到一个列表中,文件名保存为my_files_0、my_files_1、my_files_2、my_files_3 所以,我试着:在python中使用dill从文件夹加载多个文件?,python,python-3.x,dill,Python,Python 3.x,Dill,我有一个包含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.
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
块时,它将关闭。这是否必须使用dill完成?是的,它的建模文件、作业库和pickle不工作,因此我使用dill,但如果有选项,我可以尝试,但如果保存为joblib或pickle,则必须复制错误