З попередніх подорожей по країні Python вам зрозуміло, що програма отримує вхідні дані з клавіатури, або оператором =, або генератором випадкових чисел. Проте результати роботи програми виводяться на екран монітора. Ця подорож присвячена ще одному дуже важливому об'єкту в якому мають знаходитися як вхідні так і вихідні дані. Цей об'єкт - файл.
Перш ніж здійснювати операції обміну даними з файлом (зчитування та запис) необхідно відкрити доступ до цього файлу. Припустимо, що у файлі input.txt знаходяться дані і їх треба зчитати в програму. Для доступу треба скористатися функцією open
В програмі створюється змінна f. Ця змінна є "представником" фізичного файлу input.txt в оперативній пам'яті. Операції з файлом виконуються не безпосередньо з файлом, а через змінну f.
Команда open - відкриває доступ до потрібного файлу. Можна сказати, що після успішного виконання команди open, програма бачить цей файл. Неуспішне виконання залежить від декількох причин одна з яких відсутність вказаного файлу.
Ім'я фалу є тестовий рядок і обов'язково вказується в апострофах. Якщо файл знаходиться в іншій теці, то треба вказати шлях до нього.
Нехай файл з програмою Python знаходиться в теці Proect, а файл з даними input.txt знаходиться в теці data. Тоді в команді open треба прописати шлях до input.txt
f = open('data/input.txt', 'r')
Опції функції вказують на режим доступу. Наприклад: опція 'r' означає, що файл відкривається для читання.
Файл можна відкривати з такими опціями:
'r' - відкрити файл для читання даних;Це не повний перелік опцій. Але його достатньо для початку роботи з файлами.
Припустимо, що в теці знаходиться текстовий файл file.txt. По - перше треба відкрити доступ до нього f = open('file.txt','r') Для зчитування даних з файлу треба звернутися до файлової змінної f методом read.
Для зчитування всього файлу f в змінну s, неохідно звернутися до файлової змінної методом read().
Дані з файлу присвоюються змінній s. Змінна s текстового типу. Якщо після s = f.read() додати print(s), то вміст файлу виведеться на екран.
Для зчитування даних файлу певної довжини, необхідно звернутися до файлової змінної методом read(n), де n - кількість символів що зчитуються. При цьому "файловий" курсор пересунеться на n символів.
Зчитається 3 символи з файлу в змінну s.
Для зчитування кожного рядка файла окремо, необхідно звернутися до файлової змінної методом readline().
В змінну а зчитається один рядок файлу, в змінну b - інший.
Якщо в текстовому файлі зберігаються числа то для їх опрацювання необхідно здійснити перетворення функціями int та float.
Наприклад: якщо в змінну s було зчитано ціле число, то його треба перетворити
s = int(s)
Для запису текстових даних у файл необхідно, по-перше відкрити файл для запису функцією open з параметром 'w':
f = open('out.txt','w')
Для запису числових даних перетворюємо їх на текстовий рядок за допомогою str
s = 5
s = str(s)
Якщо необхідно сформувати декілька рядків тексту, скористатися '\n'
s = 'перший рядок ' + '\n' + 'другий рядок'
Після того як текстовий рядок сформовано його можна записати у файл звернувшись до текстової змінної методом write.
Після закінчення всіх дій з файлом, закриваємо його з метою звільнити пам'ять.
Ось таким простим методом файл закривається по закінченню роботи з ним.
Припустимо, що в текстовому файлі resume.txt зберігаються анкетні дані
Наступний код програми не робить нічого особливого окрім того, що читає файл в змінну s, та виводить значення s на екран.
Після натискання F5:
Поданий код зчитує окремі рядки в окремі змінні, формує текстовий рядок оформленої анкети та записує його в новий текстовий файл
Після натискіння F5:
У файлі input.txt два рядки. В першому рядку розміщується курс долара, в другому - кількість доларів для обміну. Програма має створити вихідний файл output.txt. В цей файл має бути записана сума, що отримана при конвертації заданої кількості доларів.
| input.txt | output.txt |
| 25.6 56 | Сума конвертації 1433.60 |