我有一个包含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]…..
答案 0 :(得分:1)
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))
另外,请注意,在解决方案中,使用f.close()
打开with
时不需要执行f
-离开{{1 }}块。
答案 1 :(得分:0)
我使用数组而不是列表,它有效
malloc