<p align="center"> 
<a href="https://github.com/milaan9"><img src="https://img.shields.io/static/v1?logo=github&label=maintainer&message=milaan9&color=ff3300" alt="Last Commit"/></a> 
<!--<img src="https://badges.pufler.dev/created/milaan9/05_Python_Files" alt="Created"/>-->
<!--<a href="https://github.com/milaan9/05_Python_Files/graphs/commit-activity"><img src="https://img.shields.io/github/last-commit/milaan9/05_Python_Files.svg?colorB=ff8000&style=flat" alt="Last Commit"/> </a>-->
<a href="https://github.com/milaan9/05_Python_Files/pulse" alt="Activity"><img src="https://img.shields.io/github/commit-activity/m/milaan9/05_Python_Files.svg?colorB=teal&style=flat" /></a> 
<a href="https://hits.seeyoufarm.com"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fmilaan9%2F05_Python_Files&count_bg=%231DC92C&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=views&edge_flat=false"/></a>
<a href="https://github.com/milaan9/05_Python_Files/stargazers"><img src="https://img.shields.io/github/stars/milaan9/05_Python_Files.svg?colorB=1a53ff" alt="Stars Badge"/></a>
<a href="https://github.com/milaan9/05_Python_Files/network/members"><img src="https://img.shields.io/github/forks/milaan9/05_Python_Files" alt="Forks Badge"/> </a>
<img src="https://img.shields.io/github/repo-size/milaan9/05_Python_Files.svg?colorB=CC66FF&style=flat" alt="Size"/>
<a href="https://github.com/milaan9/05_Python_Files/pulls"><img src="https://img.shields.io/github/issues-pr/milaan9/05_Python_Files.svg?colorB=yellow&style=flat" alt="Pull Requests Badge"/></a>
<a href="https://github.com/milaan9/05_Python_Files/issues"><img src="https://img.shields.io/github/issues/milaan9/05_Python_Files.svg?colorB=yellow&style=flat" alt="Issues Badge"/></a>
<img src="https://img.shields.io/github/languages/top/milaan9/05_Python_Files.svg?colorB=996600&style=flat" alt="Language"/></a> 
<a href="https://github.com/milaan9/05_Python_Files/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blueviolet.svg" alt="MIT License"/></a>
</p> 
<!--<img src="https://badges.pufler.dev/contributors/milaan9/01_Python_Introduction?size=50&padding=5&bots=true" alt="milaan9"/>-->

<p align="center"> 
<a href="https://mybinder.org/v2/gh/milaan9/05_Python_Files/HEAD"><img src="https://mybinder.org/badge_logo.svg" alt="binder"/></a>
<a href="https://githubtocolab.com/milaan9/05_Python_Files"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="colab"/></a>
</p>    
 
# 05_Python_Files

## Introduction 👋

Python file I/O (a.k.a File handling) is one of the essential topics for programmers and automation testers. It is required to work with files for either writing to a file or read data from it.

Also, if you are not already aware, I/O operations are the costliest operations where a program can stumble. Hence, you should be quite careful while implementing file handling for reporting or any other purpose. Optimizing a single file operation can help you produce a high-performing application or a robust solution for automated software testing.

In Python, file processing takes place in the following order.

* Open a file that returns a filehandle.
* Use the handle to perform read or write action.
* Close the filehandle.

Before you do a read or write operation to a file in Python, you need to open it first. And as the read/write transaction completes, you should close it to free the resources tied with the file.

---

## Table of contents 📋

| **No.** | **Name** | 
| ------- | -------- | 
| 01 | **[Python_File_Input_Output](https://github.com/milaan9/05_Python_Files/blob/main/001_Python_File_Input_Output.ipynb)** |
| 02 | **[Python_File_Directory](https://github.com/milaan9/05_Python_Files/blob/main/002_Python_File_Directory.ipynb)** |
| 03 | **[Python_File_Exception](https://github.com/milaan9/05_Python_Files/blob/main/003_Python_File_Exception.ipynb)** |
| 04 | **[Python_Exceptions_Handling](https://github.com/milaan9/05_Python_Files/blob/main/004_Python_Exceptions_Handling.ipynb)** |
| 05 | **[Python_User_defined_Exceptions](https://github.com/milaan9/05_Python_Files/blob/main/005_Python_User_defined_Exceptions.ipynb)** |

These are online **read-only** versions. However you can **`Run ▶`**  all the codes **online** by clicking here ➞ <a href="https://mybinder.org/v2/gh/milaan9/05_Python_Files/HEAD"><img src="https://mybinder.org/badge_logo.svg" alt="binder"/></a>

---

## Frequently asked questions ❔

### How can I thank you for writing and sharing this tutorial? 🌷

You can <img src="https://img.shields.io/static/v1?label=%E2%AD%90 Star &message=if%20useful&style=style=flat&color=blue" alt="Star Badge"/> and <img src="https://img.shields.io/static/v1?label=%E2%B5%96 Fork &message=if%20useful&style=style=flat&color=blue" alt="Fork Badge"/> Starring and Forking is free for you, but it tells me and other people that it was helpful and you like this tutorial.

Go [**`here`**](https://github.com/milaan9/05_Python_Files) if you aren't here already and click ➞ **`✰ Star`** and **`ⵖ Fork`** button in the top right corner. You'll be asked to create a GitHub account if you don't already have one.

---

### How can I read this tutorial without an Internet connection? <img alt="GIF" src="https://github.com/TheDudeThatCode/TheDudeThatCode/blob/master/Assets/hmm.gif" width="20" />

1. Go [**`here`**](https://github.com/milaan9/05_Python_Files) and click the big green ➞ **`Code`** button in the top right of the page, then click ➞ [**`Download ZIP`**](https://github.com/milaan9/05_Python_Files/archive/refs/heads/main.zip).

    ![Download ZIP](img/dnld_rep.png)

2. Extract the ZIP and open it. Unfortunately I don't have any more specific instructions because how exactly this is done depends on which operating system you run.
    
3. Launch ipython notebook from the folder which contains the notebooks. Open each one of them
  
    **`Kernel > Restart & Clear Output`**
    
This will clear all the outputs and now you can understand each statement and learn interactively.

If you have git and you know how to use it, you can also clone the repository instead of downloading a zip and extracting it. An advantage with doing it this way is that you don't need to download the whole tutorial again to get the latest version of it, all you need to do is to pull with git and run ipython notebook again.

---

## Authors ✍️

I'm Dr. Milaan Parmar and I have written this tutorial. If you think you can add/correct/edit and enhance this tutorial you are most welcome🙏

See [github's contributors page](https://github.com/milaan9/05_Python_Files/graphs/contributors) for details.

If you have trouble with this tutorial please tell me about it by [Create an issue on GitHub](https://github.com/milaan9/05_Python_Files/issues/new). and I'll make this tutorial better. This is probably the best choice if you had trouble following the tutorial, and something in it should be explained better. You will be asked to create a GitHub account if you don't already have one.

If you like this tutorial, please [give it a ⭐ star](https://github.com/milaan9/05_Python_Files).

---

## Licence 📜

You may use this tutorial freely at your own risk. See [LICENSE](./LICENSE).



