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

时间:2019-07-15 02:35:32

标签: 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.sav'%i, 'rb') as f: my_files = dill.load(f)
my_files

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

2 个答案:

答案 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