python file handling tutorial
Поглиблений огляд операцій з обробкою файлів Python на практичних прикладах:
У серії Підручник з Python для початківців , ми дізналися більше про Функції рядка Python у нашому останньому уроці.
Python надає нам важливу функцію для читання даних із файлу та запису даних у файл.
В основному в мовах програмування всі значення або дані зберігаються в деяких змінних, що мають мінливий характер.
Оскільки дані будуть зберігатися в цих змінних лише під час виконання та будуть втрачені після завершення виконання програми. Тому краще зберігати ці дані назавжди за допомогою файлів.
Що ви дізнаєтесь:
- Як Python обробляє файли?
- Типи файлів у Python
- Операції з обробкою файлів Python
- Кодування у файлах
- Запис і читання даних із двійкового файлу
- Атрибути файлового вводу-виводу
- Методи файлів Python
- Резюме
- Рекомендована література
Як Python обробляє файли ?
Якщо ви працюєте у великому програмному забезпеченні, де вони обробляють велику кількість даних, то ми не можемо очікувати, що ці дані зберігатимуться у змінних, оскільки змінні мають мінливий характер.
Отже, коли ви збираєтеся вирішувати такі ситуації, роль файлів з’явиться у картині.
Оскільки файли мають енергонезалежну природу, дані будуть постійно зберігатися на другорядних пристроях, таких як жорсткий диск, і за допомогою python ми оброблятимемо ці файли в наших додатках.
Ви думаєте про те, як python буде обробляти файли?
Візьмемо Приклад про те, як нормальні люди будуть обробляти файли. Якщо ми хочемо прочитати дані з файлу або записати дані у файл, то, перш за все, ми відкриємо файл або створимо новий файл, якщо файл не існує, а потім виконуємо звичайні операції читання / запису , збережіть файл і закрийте його.
Так само ми робимо ті самі операції в python, використовуючи деякі вбудовані методи або функції.
Типи файлів у Python
У Python є два типи файлів, і кожен із них детально пояснюється нижче з прикладами для Вашого легкого розуміння.
Вони є:
- Двійковий файл
- Текстовий файл
Двійкові файли в Python
Більшість файлів, які ми бачимо в нашій комп’ютерній системі, називаються двійковими файлами.
Приклад:
- Файли документів: .pdf, .doc, .xls тощо.
- Файли зображень: .png, .jpg, .gif, .bmp тощо.
- Відеофайли: .mp4, .3gp, .mkv, .avi тощо.
- Аудіофайли: .mp3, .wav, .mka, .aac тощо.
- Файли бази даних: .mdb, .accde, .frm, .sqlite тощо
- Архівні файли: .zip, .rar, .iso, .7z тощо.
- Виконувані файли: .exe, .dll, .class тощо
Рекомендована література = >> Як відкрити файл .7z
Усі бінарні файли мають певний формат. Ми можемо відкрити деякі двійкові файли в звичайному текстовому редакторі, але ми не можемо прочитати вміст, що знаходиться всередині файлу. Це тому, що всі двійкові файли будуть закодовані у двійковому форматі, який може зрозуміти лише комп’ютер або машина.
Для обробки таких двійкових файлів нам потрібен спеціальний тип програмного забезпечення для його відкриття.
Наприклад, Вам потрібно програмне забезпечення Microsoft word, щоб відкрити двійкові файли .doc. Так само, вам потрібно програмне забезпечення для зчитування PDF, щоб відкрити двійкові файли .pdf, а вам потрібно програмне забезпечення для редагування фотографій, щоб читати файли зображень тощо.
Текстові файли на Python
Текстові файли не мають певного кодування, і їх можна відкрити в звичайному текстовому редакторі.
Приклад:
- Веб-стандарти: html, XML, CSS, JSON тощо.
- Вихідний код: c, app, js, py, java тощо.
- Документи: txt, tex, RTF тощо
- Табличні дані: csv, tsv тощо
- Конфігурація: ini, cfg, reg тощо.
У цьому посібнику ми побачимо, як обробляти як текст, так і бінарні файли, на деяких класичних прикладах.
Операції з обробкою файлів Python
Найголовніше, що існує 4 типи операцій, якими Python може обробляти файли:
- відчинено
- Прочитайте
- Пишіть
- Закрити
Інші операції включають:
- Перейменувати
- Видалити
Python Створення та відкриття файлу
У Python є вбудована функція open () для відкриття файлу.
Потрібно мінімум один аргумент, як зазначено в синтаксисі нижче. Відкритий метод повертає файл-об'єкт, який використовується для доступу до записів, читання та інших вбудованих методів.
Синтаксис:
file_object = open(file_name, mode)
Тут ім'я_файлу - це ім'я файлу або місце розташування файлу, який ви хочете відкрити, а в ім'я_файла також має міститися розширення файлу. Що означає в test.txt - термін test - це назва файлу, а .txt - розширення файлу.
Режим у синтаксисі відкритої функції повідомляє Python, яку операцію ви хочете зробити з файлом.
- ‘R’ - Режим читання: Режим читання використовується лише для зчитування даних із файлу.
- ‘W’ - Режим запису: Цей режим використовується, коли ви хочете записати дані у файл або змінити його. Запам’ятайте, режим запису замінює дані, наявні у файлі.
- 'A' - режим додавання: Режим додавання використовується для додавання даних до файлу. Пам'ятайте, дані будуть додані в кінці вказівника на файл.
- ‘R +’ - режим читання або запису: Цей режим використовується, коли ми хочемо записати або прочитати дані з одного файлу.
- ‘A +’ - режим додавання або читання: Цей режим використовується, коли ми хочемо прочитати дані з файлу або додати дані до того самого файлу.
Примітка: Вищезазначені режими призначені лише для відкриття, читання або запису текстових файлів.
Використовуючи двійкові файли, ми повинні використовувати однакові режими з літерою 'B' в кінці. Щоб Python міг зрозуміти, що ми взаємодіємо з бінарними файлами.
- 'Wb' - Відкрийте файл для режиму лише запису у двійковому форматі.
- ‘Rb’ - Відкрийте файл для режиму лише для читання у двійковому форматі.
- «Від» - Відкрийте файл для додавання лише режиму у двійковому форматі.
- ‘Rb +’ - Відкрийте файл для режиму лише читання та запису у двійковому форматі.
- „Від +“ - Відкрийте файл для додавання та режиму лише для читання у двійковому форматі.
Приклад 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)
У наведеному вище прикладі ми відкриваємо файл із назвою „test.txt”, який знаходиться у розташуванні „C: / Documents / Python /”, і відкриваємо той самий файл у режимі читання-запису, що надає нам більшої гнучкості.
Приклад 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)
У наведеному вище прикладі ми відкриваємо файл із назвою ‘img.bmp’, який знаходиться у розташуванні “C: / Documents / Python /”, але тут ми намагаємось відкрити двійковий файл.
Python читання з файлу
Для того, щоб прочитати файл у python, ми повинні відкрити файл у режимі читання.
Існує три способи читання файлів на python.
- читати ((n))
- лінія зчитування ((n))
- лінії зчитування ()
Тут n - кількість байтів, які слід прочитати.
Спочатку створимо зразок текстового файлу, як показано нижче.
Тепер давайте подивимося, що робить кожен метод читання:
Приклад 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))
Вихід:
Здравствуйте
Тут ми відкриваємо файл test.txt у режимі лише для читання та читаємо лише перші 5 символів файлу методом my_file.read (5).
Вихід:
Приклад 2:
яке найкраще програмне забезпечення для управління завданнями
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())
Вихід:
Привіт Світ
Привіт Python
Добрий ранок
Тут ми не надали жодного аргументу всередині функції read (). Отже, він прочитає весь вміст, що знаходиться у файлі.
Вихід:
Приклад 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))
Вихід:
Він
Ця функція повертає перші 2 символи наступного рядка.
Вихід:
Приклад 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())
Вихід:
Привіт Світ
За допомогою цієї функції ми можемо читати вміст файлу по черзі.
Вихід:
Приклад 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())
Вихід:
(„Привіт, світ n“, „Привіт, Python n“, „Доброго ранку“)
Тут ми читаємо всі рядки, присутні в текстовому файлі, включаючи символи нового рядка.
Вихід:
Тепер давайте подивимося ще кілька практичних прикладів читання файлу.
Читання певного рядка з файлу
line_number = 4 fo = open(“C:/Documents/Python/test.txt”, ’r’) currentline = 1 for line in fo: if(currentline == line_number): print(line) break currentline = currentline +1
Вихід:
Як ти
У наведеному вище прикладі ми намагаємося прочитати лише 4горядок із файлу ‘test.txt’ за допомогою “Для циклу” .
Вихід:
Читання всього файлу одночасно
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)
Вихід:
Привіт Світ
Привіт Python
Добрий ранок
Як ти
Вихід:
Python запис у файл
Для того, щоб записати дані у файл, ми повинні відкрити файл у режимі запису.
Нам слід бути дуже обережними під час запису даних у файл, оскільки він перезаписує вміст, що знаходиться у файлі, який ви пишете, і всі попередні дані будуть стерті.
У нас є два методи запису даних у файл, як показано нижче.
- запис (рядок)
- лінії запису (список)
Приклад 1:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”)
Наведений вище код записує рядок 'Hello World' у файл 'test.txt'.
Перш ніж записувати дані у файл test.txt:
Вихід:
Приклад 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)
Перший рядок буде 'Hello World', і як ми вже згадували символ n, курсор переміститься до наступного рядка файлу, а потім напише 'Hello Python'.
список безкоштовних постачальників послуг електронної пошти в США
Пам’ятайте, якщо ми не згадуємо символ n, тоді дані будуть постійно записуватись у текстовий файл, наприклад „Hello WorldHelloPython“
Вихід:
Приклад 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)
Вищезазначений код пише a список даних у файл ‘test.txt’ одночасно.
Вихід:
Python Додавання до файлу
Щоб додати дані у файл, ми повинні відкрити файл у режимі «a +», щоб ми мали доступ як до режиму додавання, так і до режиму запису.
Приклад 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)
Вищезазначений код додає рядок 'Apple' на кінець файлу ‘test.txt’.
Вихід:
Приклад 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)
Наведений вище код додає рядок 'Apple' в кінці файлу 'test.txt' у новому рядку .
Вихід:
Приклад 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)
Наведений вище код додає список даних у файл ‘test.txt’.
Вихід:
Приклад 4:
text=('
Hello','
Hi','
Python') my_file=open('C:/Documents/Python/test.txt',mode='a+') my_file.writelines(text) print('where the file cursor is:',my_file.tell()) my_file.seek(0) for line in my_file: print(line)
У наведеному вище коді ми додаємо список даних у файл ‘test.txt’. Тут ви можете помітити, що ми використовували метод Tell (), який друкує там, де зараз знаходиться курсор.
шукати (зміщення): Зміщення приймає три типи аргументів, а саме 0,1 і 2.
Коли зсув 0: Посилання буде вказано на початку файлу.
Коли зміщення 1: Посилання буде спрямовано на поточну позицію курсора.
Коли зсув 2: Посилання буде вказано в кінці файлу.
Вихід:
Закрити файл Python
Для того, щоб закрити файл, ми повинні спочатку відкрити файл. У python ми маємо вбудований метод close (), щоб закрити файл, який відкривається.
Кожного разу, коли ви відкриваєте файл, важливо закрити його, особливо методом записи. Тому що якщо ми не викликаємо функцію закриття після методу запису, то будь-які дані, які ми записали у файл, не зберігатимуться у файлі.
Приклад 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) my_file.close()
Приклад 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”) my_file.close()
Python Перейменувати або видалити файл
Python надає нам модуль “os”, який має деякі вбудовані методи, які допоможуть нам виконувати файлові операції, такі як перейменування та видалення файлу.
Для того, щоб використовувати цей модуль, перш за все, нам потрібно імпортувати модуль “os” в нашу програму, а потім викликати відповідні методи.
метод rename ():
Цей метод rename () приймає два аргументи, тобто поточне ім'я файлу та нове ім'я файлу.
Синтаксис:
os.rename(current_file_name, new_file_name)
Приклад 1:
import os os.rename(“test.txt”, “test1.txt”)
Тут ‘test.txt’ - це поточна назва файлу, а ‘test1.txt’ - нова назва файлу.
Ви можете вказати місце розташування, як показано в наведеному нижче прикладі.
Приклад 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”)
Перед перейменуванням файлу:
Після виконання вищевказаної програми
метод remove ():
Ми використовуємо метод remove (), щоб видалити файл, вказавши ім’я файлу або розташування файлу, яке потрібно видалити.
Синтаксис:
os.remove(file_name)
Приклад 1:
import os os.remove(“test.txt”)
Тут ‘test.txt’ - це файл, який потрібно видалити.
Подібним чином, ми можемо також передати розташування файлу аргументам, як показано в прикладі нижче
Приклад 2:
import os os.remove(“C:/Documents/Python/test.txt”)
Кодування у файлах
Кодування файлів представляє перетворення символів у певний формат, який може зрозуміти лише машина.
Різні машини мають різний формат кодування, як показано нижче.
- Використовується ОС Microsoft Windows „Cp1252“ формат кодування за замовчуванням.
- Використовується ОС Linux або Unix «Utf-8» формат кодування за замовчуванням.
- ОС MAC від Apple 'Utf-8' або 'utf-16' формат кодування за замовчуванням.
Давайте розглянемо операцію кодування на кількох прикладах.
Приклад 1:
my_file = open(“C:/Documents/Python/test.txt”, mode=”r”) print(“Microsoft Windows encoding format by default is:”, my_file.encoding) my_file.close()
Вихід:
Формат кодування Microsoft Windows за замовчуванням - cp1252.
Тут я виконав свою програму на машині Windows, тому вона надрукувала кодування за замовчуванням як „cp1252“.
Вихід:
Ми також можемо змінити формат кодування файлу, передавши його як аргументи функції open.
Приклад 2:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”cp437”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Вихід:
Формат кодування файлу: cp437
Вихід:
Приклад 3:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”utf-16”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Вихід:
Формат кодування файлу: utf-16
Вихід:
Запис і читання даних із двійкового файлу
Бінарні файли зберігають дані у двійковому форматі (0 та 1), що зрозуміло машині. Отже, коли ми відкриваємо двійковий файл у нашій машині, він декодує дані та відображає у зручному для читання форматі.
Приклад:
# Давайте створимо двійковий файл.
my_file = open(“C:/Documents/Python/bfile.bin”, “wb+”) message = “Hello Python” file_encode = message.encode(“ASCII”) my_file.write(file_encode) my_file.seek(0) bdata = my_file.read() print(“Binary Data:”, bdata) ntext = bdata.decode(“ASCII”) print(“Normal data:”, ntext)
У наведеному вище прикладі спочатку ми створюємо двійковий файл 'Bfile.bin' з доступом для читання та запису та будь-які дані, які ви хочете ввести у файл, повинні бути закодовані перед тим, як викликати метод запису.
Крім того, ми друкуємо дані без їх декодування, щоб ми могли спостерігати, як саме виглядають дані у файлі, коли він закодований, а також друкуємо ті самі дані, декодуючи їх, щоб люди могли їх прочитати.
Вихід:
Двійкові дані: b'Hello Python '
Звичайні дані: Привіт Python
Вихід:
Атрибути файлового вводу-виводу
Атрибут | Опис |
---|---|
лінії зчитування () | Зчитує та повертає всі рядки з файлу |
Ім'я | Поверніть ім'я файлу |
Режим | Режим повернення файлу |
Кодування | Поверніть формат кодування файлу |
зачинено | Повернути true, якщо файл закрито, інакше повертає false |
Приклад:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) print(“What is the file name? ”, my_file.name) print(“What is the file mode? ”, my_file.mode) print(“What is the encoding format? ”, my_file.encoding) print(“Is File closed? ”, my_file.closed) my_file.close() print(“Is File closed? ”, my_file.closed)
Вихід:
Як називається файл? C: /Documents/Python/test.txt
Що таке файловий режим? р
Що таке формат кодування? cp1252
Файл закрито? помилковий
Файл закрито? Правда
Вихід:
Давайте спробуємо кілька інших методів файлу.
Приклад:
my_file = open(“C:/Documents/Python/test.txt”, “w+”) my_file.write(“Hello Python
Hello World
Good Morning”) my_file.seek(0) print(my_file.read()) print(“Is file readable: ?”, my_file.readable()) print(“Is file writeable: ?”, my_file.writable()) print(“File no:”, my_file.fileno()) my_file.close()
Вихід:
Привіт Python
Привіт Світ
Добрий ранок
Чи читається файл :? Правда
Чи можна записати файл :? Правда
Файл No: 3
Вихід:
Методи файлів Python
Функція | Пояснення |
---|---|
відчинено() | Щоб відкрити файл |
закрити () | Закрийте відкритий файл |
fileno () | Повертає ціле число файлу |
читати (n) | Читає ‘n’ символів із файлу до кінця файлу |
читабельний () | Повертає true, якщо файл можна прочитати |
readline () | Прочитайте та поверніть один рядок із файлу |
шукати (компенсувати) | Змініть положення курсора на байти, як зазначено в зміщенні |
досяжний () | Повертає true, якщо файл підтримує довільний доступ |
Tell () | Повертає поточне розташування файлу |
для запису () | Повертає true, якщо файл можна записати |
write () | Записує рядок даних у файл |
лінії запису () | Записує у файл список даних |
Давайте подивимось, що ми обговорювали дотепер у кінцевій програмі.
Приклад:
my_file = open('C:/Documents/Python/test.txt', mode='w+') print('What is the file name? ', my_file.name) print('What is the mode of the file? ', my_file.mode) print('What is the encoding format?', my_file.encoding) text = ('Hello Python
', 'Good Morning
', 'Good Bye') my_file.writelines(text) print('Size of the file is:', my_file.__sizeof__()) print('Cursor position is at byte:', my_file.tell()) my_file.seek(0) print('Content of the file is:', my_file.read()) my_file.close() file = open('C:/Documents/Python/test.txt', mode='r') line_number = 3 current_line = 1 data = 0 for line in file: if current_line == line_number: data = line print('Data present at current line is:', data) break current_line = current_line + 1 bin_file = open('C:/Documents/Python/bfile.exe', mode='wb+') message_content = data.encode('utf-32') bin_file.write(message_content) bin_file.seek(0) bdata = bin_file.read() print('Binary Data is:', bdata) ndata = bdata.decode('utf-32') print('Normal Data is:', ndata) file.close() bin_file.close()
Вихід:
Як називається файл? C: /Documents/Python/test.txt
Який режим файлу? w +
Що таке формат кодування? cp1252
Розмір файлу: 192
Позиція курсора знаходиться в байті: 36
Вміст файлу: Привіт Python
Добрий ранок
До побачення
Дані, наявні в поточному рядку: Good Bye
Двійкові дані: x00 x00 x00e x00 x00 x00 ′
Звичайні дані: до побачення
Вихід:
запитання та відповіді на інтерв'ю для angular js
Резюме
Нижче наведено кілька вказівок, які можна підсумувати з наведеного вище підручника:
- Зазвичай ми використовуємо файл для постійного зберігання даних у вторинному сховищі, оскільки він є енергонезалежним за своєю суттю, так що дані можуть бути використані в майбутньому.
- Іноді в деяких додатках ми можемо захотіти прочитати дані з текстового файлу або двійкового файлу, тому ми можемо досягти цього, використовуючи вбудовані функції в Python, такі як відкриті, читання, записи тощо
- Потрібно бути дуже обережним, використовуючи метод запису, оскільки всі дані, які ви вписуєте у файл, будуть перезаписані, а старі дані втрачені.
- Для того, щоб запобігти перезапису даних, краще відкрити файл у режимі запису та додавання, щоб дані були додані в кінці файлу.
- Пам'ятайте, коли ви відкриваєте файл у двійковому режимі, він не приймає параметр кодування.
- Ви можете виконати перейменування та видалення файлу за допомогою методу перейменування та видалення методів з модуля / пакета “os”.
Ми сподіваємось, що вам сподобався цей інформативний підручник з обробки файлів Python. У нашому підручнику буде розказано більше про основну функцію Python.
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- Вхід-вихід і файли в Python (Python відкриває, читає та записує у файл)
- Підручник з Python DateTime із прикладами
- Підручник з Python для початківців (практичне БЕЗКОШТОВНЕ навчання з Python)
- Поглиблені підручники Eclipse для початківців
- Функції рядка Python
- Підручник з розділення рядків Python
- Змінні Python
- Об'єкти файлу VBScript: CopyFile, DeleteFile, OpenTextFile, читання та запис текстового файлу