【问题标题】:Loading and plotting multiple pickle file?加载和绘制多个泡菜文件?
【发布时间】:2021-01-29 16:20:15
【问题描述】:

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

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

但问题是这些文件正在发生变化,有时我有更少的文件有时更多的文件。所以我需要以一种自动的方式来做。有什么想法吗?

【问题讨论】:

  • 你不需要调用 f.close() 因为 ''with open() as f:'' 会在上下文结束时自动为你调用关闭文件。

标签: python dataframe dictionary for-loop pickle


【解决方案1】:

首先你需要列出所有的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
            # ...

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-10
      • 2021-05-26
      • 2019-09-07
      • 2020-11-07
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多