Python підтримує різноманітні типи файлів. Файли можна розділити на дві великі групи:
- Текстові файли – файли, які зберігають інформацію у текстовому форматі, напр. txt, html, csv тощо.
- Двійкові файли – зображення, аудіо, відео тощо.
Робота з файлами може відрізнятися в залежності від типу файлу.
Послідовність роботи з файлами:
- Використовуйте метод open(), щоб відкрити файл
- Використовуйте метод read() для читання файлу або метод write() для запису у файл.
- Використовуйте метод close(), щоб закрити файл.
Для початку роботи з файлом скористайтеся методом open(), щоб відкрити його: open(file, mode). Перший параметр – це шлях до файлу. Він може бути абсолютним або відносним.
Приклад абсолютного шляху до файлу – C://directoryname/filename.txtC://directoryname/filename.txt
Відносний шлях до файлу залежить від місця поточного скрипта Python. Приклад відносного шляху: directoryname/filename.txtdirectoryname/filename.txt
Другим аргументом є режим. Є чотири режими:
- r (Read/Читання). Відкриває файл для читання. Якщо файл не знайдено, генерується FileNotFoundError.
- w (Write/Написати). Відкриває файл для запису в нього. Якщо файл відсутній, він створений. Якщо файл присутній, він створюється знову, а всі дані в ньому стираються.
- a(Append/Додати). Відкриває файл для внесення змін без стирання попередніх даних. Якщо файл відсутній, він створюється. Якщо файл присутній, нова інформація додається в кінці файлу.
- x (Create/Створити). Створює файл, якщо файл існує, повертає помилку.
Крім того, ви можете вказати, чи потрібно обробляти файл у двійковому чи текстовому режимі:
- t – text – значення за замовчуванням. Текстовий режим
- b – binary – Двійковий режим (наприклад, зображення)
Функція open() в Python використовується для відкриття файлів. Вона повертає об’єкт файлу, з яким можна працювати. Приклад з відео:
#відкрити файл у режимі «запису».
file1 = open("file.txt", "w")
#закрити файл
file1.close()
Під час роботи з файлами можуть виникати помилки, для обробки яких можна використовувати блоки try except. Приклад з відео:
#Під час роботи з файлами можливі винятки.
#Ви можете використовувати блоки
#"try...except" для вирішення таких проблем.
try:
file2 = open("file2.txt", "w")
try:
file2.write("Python is a solid choice.")
except Exception as exInner:
print(exInner)
finally:
file2.close()
except Exception as exOuter:
print(exOuter)
Вираз with в Python
Вираз with в Python використовується для управління контекстом, що дозволяє автоматично обробляти ресурси, такі як файли або з’єднання. Він забезпечує безпечне відкриття і закриття ресурсів, навіть якщо виникає помилка.
Основні переваги використання with:
- Автоматичне закриття ресурсів: Наприклад, при відкритті файлу, with автоматично закриває його після виходу з блоку, навіть якщо сталася помилка.
- Читабельність: Код стає більш зрозумілим і компактним.
Приклад з відео:
#Можна використовувати вираз "with".
#Він закриває файли в будь-якому разі.
# with open(filename, mode) as file_obj:
# commands
#with вираз визначає змінну file_obj для відкритого файлу.
with open("file3.txt", "w") as fileInUse:
fileInUse.write("Python is a solid choice. File3.")
Метод write()
Метод write() в Python використовується для запису певного тексту у файл. Приклад з відео:
#створити новий файл і вписати в нього текст.
with open("file4.txt", "w") as fileInUse:
fileInUse.write("Java is a solid choice. File4")
with open("file4.txt", "w") as fileInUse:
fileInUse.write("Python is a solid choice. File4.")
with open("file4.txt", "a") as fileInUse:
fileInUse.write("\nJava is a solid choice. File4")
with open("file4.txt", "a") as fileInUse:
print("\nC# is a solid choice. File4", file=fileInUse)
Зчитування файлу
Зчитування файлу в Python зазвичай здійснюється за допомогою методу open() у поєднанні з методами для читання вмісту. Основні способи зчитування:
- read() – Зчитує весь вміст файлу як один рядок.
- readline() – Зчитує один рядок за раз.
- readlines() – Зчитує всі рядки та повертає їх у вигляді списку.
Приклад з відео:
#ви можете прочитати текстовий файл за допомогою cycle for
with open("file4.txt", "r") as fileInUse:
for line in fileInUse:
print(line, end="")#readline is used behind the scene
#Явне використання readline
print("\nExplicit use of readline\n")
with open("file4.txt", "r") as fileInUse:
str1=fileInUse.readline()
print(str1, end="")
str2=fileInUse.readline()
print(str2, end="")
str3=fileInUse.readline()
print(str3, end="")
Приклад з відео із поєднанням readline() з циклом while та застосуванням методу read():
#readline() у поєднанні з циклом while
with open("file4.txt", "r") as fileInUse:
fileLine = fileInUse.readline()
while fileLine:
print(fileLine, end="")
fileLine = fileInUse.readline()
print()
#для невеликих файлів можна
#використовувати метод read().
with open("file4.txt", "r") as fileInUse:
fileContent = fileInUse.read()
print(fileContent)
Приклад із застосуванням readlines() та додаванням encoding параметра з відео:
#Метод readlines() можна використовувати
#для читання всіх рядків файлу
#вони будуть збережені як список
with open("file4.txt", "r") as fileInUse:
fileContent = fileInUse.readlines()
print(fileContent)
#якщо є проблеми з кодуванням,
#можна скористатися параметром кодування
with open("file4.txt", encoding="utf8") as fileInUse:
fileContent = fileInUse.read()
print(fileContent)
Файли csv
Робота з CSV-файлами в Python зазвичай здійснюється за допомогою стандартної бібліотеки csv, яка забезпечує прості інструменти для читання та запису CSV-даних. Приклад з відео:
#У Python є модуль csv.
#Цей модуль спрощує роботу з файлами csv.
import csv
fileName = "file8.csv"
customers = [
["Solverson", 35],
["Jackson", 29]
]
with open(fileName, "w", newline="") as fileInUse:
writer = csv.writer(fileInUse)
writer.writerows(customers)
with open(fileName, "a", newline="") as fileInUse:
customer = ["Smith", 25]
writer = csv.writer(fileInUse)
writer.writerow(customer)
with open(fileName, "r", newline="") as fileInUse:
reader=csv.reader(fileInUse)
for i in reader:
print("Name: {}, Age: {}".format(i[0], i[1]))
Модуль OS
В Python є вбудований модуль os.
Цей модуль містить низку корисних функцій:
- mkdir() – створює нову папку
- rmdir() – видаляє папку
- rename() – перейменовує файл
- remove() – видаляє файл
Модуль os в Python — це стандартна бібліотека, яка надає функції для взаємодії з операційною системою. Він дозволяє виконувати різні операції, такі як робота з файлами і каталогами, отримання інформації про систему, а також управління середовищем. Приклад з відео:
import os
#використання методу mkdir
try:
os.mkdir("dir1")
with open("dir1/file.txt","w") as fileInUse:
fileInUse.write("Python is a solid choice")
with open("dir1/file.txt", "r") as fileInUse:
content = fileInUse.read()
print(content)
except Exception as e:
print(e)
Приклад з перейменуванням файлу з відео:
import os
os.rename("dir1/file.txt", "dir1/fileRenamed.txt")
with open("dir1/fileRenamed.txt", "r") as fileInUse:
content = fileInUse.read()
print(content)
Приклад з видаленням файлу та папки з відео:
import os
#delete folder dir1
os.remove("dir1/fileRenamed.txt")
os.rmdir("dir1")
В цьому відео поговоримо про:
00:07 Files
12:22 write() – “w” and “a”
15:54 Reading file
27:23 csv files
34:46 OS Module