Python 加载和打印多个pickle文件?

Python 加载和打印多个pickle文件?,python,dataframe,dictionary,for-loop,pickle,Python,Dataframe,Dictionary,For Loop,Pickle,我在一个文件夹中有多个pickle文件,我想先加载它们,然后打印它们。事实上,我想根据他们的名字来描绘他们。因此,我需要将它们加载到不同的数据帧或字典中,然后绘制它们。例如,当文件名为“线性”时,我需要使用线性图;当文件名为“scat”时,我需要使用散点图。我可以单独读取它们,然后使用以下代码绘制它们: import pickle with open('path/filename', 'rb') as f: mydata=pickle.load(f) f.close()

我在一个文件夹中有多个pickle文件,我想先加载它们,然后打印它们。事实上,我想根据他们的名字来描绘他们。因此,我需要将它们加载到不同的数据帧或字典中,然后绘制它们。例如,当文件名为“线性”时,我需要使用线性图;当文件名为“scat”时,我需要使用散点图。我可以单独读取它们,然后使用以下代码绘制它们:

 import pickle
 with open('path/filename', 'rb') as f:
        mydata=pickle.load(f)
 f.close()
但问题是这些文件正在改变,我的文件越来越少,有时越来越多。所以我需要用一种自动的方式。有什么想法吗?

您可以使用os.listdir()获取给定文件夹中所有文件的列表

然后,您可以创建一个文件名(键)和数据(值)的字典(假设所有文件都有唯一的名称)。

您可以使用os.listdir()获取给定文件夹中所有文件的列表


然后,您可以创建文件名(键)和数据(值)的字典(假设所有文件都有唯一的名称)。

首先,您需要列出所有pickle文件:

import glob

all_files = glob.glob('path_to_files/*.pickle')
然后,您可以检查文件名是否包含线性或分散:

for curr_file in all_files:

   with open(curr_file, 'rb') as f:
        mydata=pickle.load(f)

        if curr_file.find('linear'):
            # code to plot_linear_plot
            # ...

        if curr_file.find('scatter'):
            # code plot_scatter_plot
            # ...


首先,您需要列出所有pickle文件:

import glob

all_files = glob.glob('path_to_files/*.pickle')
然后,您可以检查文件名是否包含线性或分散:

for curr_file in all_files:

   with open(curr_file, 'rb') as f:
        mydata=pickle.load(f)

        if curr_file.find('linear'):
            # code to plot_linear_plot
            # ...

        if curr_file.find('scatter'):
            # code plot_scatter_plot
            # ...


您不需要调用f.close(),因为当上下文结束时,以open()作为f的“”将自动为您调用close文件。您不需要调用f.close(),因为当上下文结束时,以open()作为f的“”将自动为您调用close文件。