> For the complete documentation index, see [llms.txt](https://0xa1mn.gitbook.io/cyber-explained/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://0xa1mn.gitbook.io/cyber-explained/programming/python/system-pogramming/file-handling.md).

# File Handling

The key function for working with files in Python is the `open()` function.

The `open()` function takes two parameters; *filename*, and *mode*.

There are four different methods (modes) for opening a file:

> `"r"` - Read - Default value. Opens a file for reading, error if the file does not exist
>
> `"a"` - Append - Opens a file for appending, creates the file if it does not exist
>
> `"w"` - Write - Opens a file for writing, creates the file if it does not exist
>
> `"x"` - Create - Creates the specified file, returns an error if the file exists

In addition you can specify if the file should be handled as binary or text mode

> `"t"` - Text - Default value. Text mode
>
> `"b"` - Binary - Binary mode (e.g. images)

### Open a File

To open a file for reading it is enough to specify the name of the file:

```
f = open("file.txt")
```

The code above is the same as:

```
f = open("file.txt", "rt")
```

### Read a File

#### hole file

```
f = open("file.txt", "r")
print(f.read())
```

#### Only Parts

```
f = open("file.txt", "r")
print(f.read(5)) # Return the 5 first characters
```

#### Read Lines

```
f = open("file.txt", "r")
print(f.readline()) # first line
print(f.readline()) # second line
print(f.readline()) # third line
```

we can read hole file using loops

```
f = open("file.txt", "r") 
for x in f:
    print(x)
```

#### Close Files

```
f = open("file.txt", "r")
print(f.readline())
f.close()
```

### Write to an Existing File

To write to an existing file, you must add a parameter to the `open()` function:\
`"a"` - Append - will append to the end of the file\
`"w"` - Write - will overwrite any existing content

**Append**

```
f = open("file.txt", "a")
f.write("Hello world!")
f.close()

#open and read the file after the appending: 
f = open("file.txt", "r")
print(f.read())
Output: Hello world!
```

**Overwrite**

```
f = open("file.txt", "w")
f.write("overwite Hello world!")
f.close()

#open and read the file after the appending: 
f = open("file.txt", "r")
print(f.read())
Output: overwite Hello world!
```

### Create a New File

To create a new file in Python, use the `open()` method, with one of the following parameters:\
`"x"` - Create - will create a file, returns an error if the file exist\
`"a"` - Append - will create a file if the specified file does not exist\
`"w"` - Write - will create a file if the specified file does not exist

```
f = open("file.txt", "x") # returns an error if the file exist
f = open("file.txt", "w") # create a file if the  file does not exist
```

### Delete a File

To delete a file, you must import the OS module, and run its `os.remove()` function:

```
import os
os.remove("demofile.txt")
```

### Delete Folder

```
import os
os.rmdir("myfolder")
```
