{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Pickle files\n",
    "\n",
    "- We have seen how to write and read raw data to files using numpy and basic file I/O.\n",
    "- Another method involves directly saving variables and reading them back in.\n",
    "- Use a so-called pickle file. \n",
    "    - These will be binary, so you can't read the data in a text editor, but you can save and load the file.\n",
    "    \n",
    "### Write the file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pickle\n",
    "\n",
    "description = \"x-y data\"\n",
    "x = np.linspace(0,3,1000)\n",
    "y = np.sin(20*x)*np.exp(-2*x)\n",
    "\n",
    "with open('data.pkl', 'wb') as ofile:      # 'wb' for writing binary\n",
    "    pickle.dump(description, ofile)\n",
    "    pickle.dump(x, ofile)\n",
    "    pickle.dump(y, ofile)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read from the file\n",
    "- Read variables in the same order they were written"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('data.pkl', 'rb') as ifile:      # 'rb' for reading binary\n",
    "    description = pickle.load(ifile)\n",
    "    x = pickle.load(ifile)\n",
    "    y = pickle.load(ifile)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Preferred method: use a dictionary\n",
    "\n",
    "- To avoid worrying about how the data is stored when you read the file (which likely happens in codes other than what was used to write the data), use a dictionary.\n",
    "- In building the dictionary, the keys don't have to match the variable names.\n",
    "- It's not a bad idea to include a description variable. \n",
    "    - Triple quoted strings are nice for this since they can include more formatting.\n",
    "        - Could even format using markdown and then render the results, including equations, etc. \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['description', 'x', 'y'])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#------------------ wrap the data\n",
    "\n",
    "the_data = { \"description\": description, \"x\":x, \"y\":y }\n",
    "\n",
    "#------------------ write the file\n",
    "\n",
    "with open('data.pkl', 'wb') as ofile:\n",
    "    pickle.dump(the_data, ofile)\n",
    "\n",
    "#------------------ read the file\n",
    "\n",
    "with open('data.pkl', 'rb') as ifile:\n",
    "    my_data = pickle.load(ifile)\n",
    "\n",
    "my_data.keys()           # output the keys (the data availabe in the pickle file)\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x139bb02f0>]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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JkyYIDz//PPCa6+9JsyaNUuIiYkRVqxYEapvIWjWr18vLFq0SLjjjjsEo9EoLFq0SFi0aJFQVVUlXZOcnNxiv42//e1vgtFoFJ588klhwYIFgslkuiD249i9e7ewaNEi4ZFHHhEACK+//rqwaNEioaCgQLpm1KhRwuzZswVBEIQjR44I/fr1Ex599FHhrbfeEh566CHBYDAoukQzHFitVqF3795CRkaG8N5770k/U4sWLRJOnDghXXfbbbe1WO67Y8cOwWg0CrfeeqvwyiuvCIMHDxZGjBgh2Gy2EHwXwTN16lQhOjpa+Ne//tXivdqzZ490zYIFCwS9Xi99PXHiROGee+4RXnvtNWmvpuHDhws1NTWh+BaC5sYbbxRuvvlm4V//+pfw6quvCr/85S+F6Oho4dtvv5Wu+eSTTwQA0v+XFotFGDhwoDBy5Ejh3//+tzB79mwhLi5O+OmnnxQbJxt2PTQaDb7++mu8/vrr2L59O5KTk7Fz584WHdSpqamYPXu2lNq9uaezevPNN/Hhhx/i+++/R3R0NL777jtMmDBBel6v12P27Nno1q0bAODuu+/G0KFD8emnn+Lo0aMYO3Ys/vOf/6BLly4h+g6CZ+vWrdi+fTsAYNasWVi2bBkA9+7CYun66quvxqBBg6R7fv/736N///74/PPP4XK58O677+KXv/xlsIcedD/99JPUUzB79mx89913AIDu3btLjahTp05FamoqAEgri959911s3LgRmZmZWLNmTaffXbexsRFDhgwBAKxcubLFc5mZmejevTsAd99G851khw8fjl27duHNN9/Etm3bcOutt+LXv/51h7sYR7qcnBz84he/aFEtBtwVAvH/u379+uG6666Tnlu9ejU++ugjbNq0CdHR0Xj22Wdx/fXXd/od1D/88EN8/vnn+P7772Gz2aQ/q9PS0qRrcnJyMHv2bBiNRgDuqt7GjRvx6quvYsuWLejWrRt+/PFHRacjVYLQrHGBiIiIKMyx54WIiIgiCsMLERERRRSGFyIiIoooDC9EREQUURheiIiIKKIwvBAREVFEYXghIiKiiMLwQkRERBGF4YWIiIgiCsMLERERRRSGFyIiIoooDC9EREQUUf4/1Gh7NfiqZlcAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(my_data['x'], my_data['y'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.14.7"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
