---
sidebar_position: 9
---

# Работа с файлами

Python предоставляет простые и удобные способы для работы с файлами.

**Открытие файла:**

Для открытия файла используется функция `open()`. Функция `open()` возвращает файловый объект, который можно использовать для чтения или записи данных.

```python
# Открытие файла для чтения ('r')
file = open("myfile.txt", "r")

# Открытие файла для записи ('w') - перезапишет существующий файл или создаст новый
file = open("output.txt", "w")

# Открытие файла для добавления ('a') - добавит данные в конец существующего файла или создаст новый
file = open("log.txt", "a")

# Открытие файла в бинарном режиме ('rb', 'wb', 'ab') - для работы с бинарными файлами (например, изображениями)
file = open("image.jpg", "rb")

# Открытие файла для чтения и записи ('r+')
file = open("data.txt", "r+")
```

**Чтение из файла:**

  * **`read()`:** Читает все содержимое файла в виде строки.
  * **`readline()`:** Читает одну строку из файла.
  * **`readlines()`:** Читает все строки файла и возвращает их в виде списка строк.

<!-- end list -->

```python
file = open("myfile.txt", "r")

content = file.read() # Чтение всего содержимого
print(content)

file.seek(0) # Возвращает курсор в начало файла

line = file.readline() # Чтение одной строки
print(line)

lines = file.readlines() # Чтение всех строк в список
print(lines)

file.close() # Обязательно закрыть файл после работы
```

**Запись в файл:**

  * **`write()`:** Записывает строку в файл.
  * **`writelines()`:** Записывает список строк в файл.

<!-- end list -->

```python
file = open("output.txt", "w")

file.write("Это строка для записи в файл.\n")
lines_to_write = ["Первая строка\n", "Вторая строка\n"]
file.writelines(lines_to_write)

file.close() # Обязательно закрыть файл после работы
```

**Конструкция `with open()`:**

Рекомендуется использовать конструкцию `with open()`, которая автоматически закрывает файл после завершения работы, даже если произошла ошибка.

```python
with open("myfile.txt", "r") as file:
    content = file.read()
    print(content)
# Файл будет автоматически закрыт после выхода из блока with
```