加载并绘制多个泡菜文件?

时间:2020-10-15 07:58:57

标签: python dataframe dictionary for-loop pickle

我在一个文件夹中有多个pickle文件,我想先加载它们,然后绘制它们。确实,我想根据它们的名称来绘制它们。因此,我需要将它们加载到不同的数据帧或字典中,然后进行绘制。例如,当文件名包含“ linear”时,我需要使用线性图;当名称包含“ scat”时,我需要使用散点图。我可以单独阅读它们,然后使用以下代码对其进行绘制:

 import pickle
 with open('path/filename', 'rb') as f:
        mydata=pickle.load(f)
 f.close()

但是事实是这些文件正在更改,有些文件我少了,有时文件多了。因此,我需要以自动方式进行操作。有想法吗?

2 个答案:

答案 0 :(得分:1)

您可以按照here所述使用os.listdir()来获取给定文件夹中所有文件的列表。

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

答案 1 :(得分:1)

首先,您需要列出所有的泡菜文件:

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
            # ...