Working with Files
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Alternative Title |
| |
Title of Series | ||
Number of Parts | 10 | |
Author | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/63446 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | |
Genre |
1
2
4
5
6
7
8
9
10
00:00
XMLComputer animation
00:11
Block (periodic table)Computer programmingData storage deviceSpacetimeMereologyString (computer science)Heegaard splittingException handlingCASE <Informatik>Module (mathematics)Statement (computer science)Message passingDampingDifferent (Kate Ryan album)InformationObject (grammar)Computer fileFunctional (mathematics)File formatPositional notationInterior (topology)Parameter (computer programming)Closed setOpen setContent (media)Letterpress printingReading (process)Line (geometry)Order (biology)Symbol tableError messageCodeoutputComputerFile systemElectronic mailing listCartesian coordinate systemData structureRight angleCondition numberGroup actionData exchangeAnalytic continuationOperator (mathematics)NumberSemiconductor memoryIntegerProcess (computing)Task (computing)Series (mathematics)Function (mathematics)Moment (mathematics)Form (programming)Code refactoringDirectory serviceNumeral (linguistics)Descriptive statisticsRadical (chemistry)Theory of relativityWindowSystem callLattice (order)Asynchronous Transfer ModeUniform resource locatorMathematicsComputer animation
Transcript: Ukrainian(auto-generated)
00:12
Доброго дня, шановні здобувачі! Шалана кількість інформації доступна у форматі текстових файлів. Наприклад, дані пропагоду, дорожній рух, соціоекономічну статистику, літературні твори точ.
00:28
Перший крок роботи з інформацією в текстовому файлі – це зчитати його у пам'ять. Функція Open відкриває файл. Щоб зробити будь-яку операцію з файлом, навіть просто вивести в міс на екран, треба його відкрити.
00:45
Функція Open приймає один аргумент – це ім'я файл, який ви хочете відкрити. Python шукатиме цей файл у теці, де зберігається програма. Функція Open повертає об'єкт, що представляє цей файл.
01:03
Ключове слово with закриє наш файл, що й на доступ до нього стане неактуальним. Зверніть увагу, в цій програмці ми викликаємо Open, а Close – ні. Можна було відкрити файл за допомогою виклику Open та закрити за допомогою Close.
01:25
Але якби через якусь помилку програми метод Close не був би викликаний, файл ніколи б не закрився. Якщо ви викличте Close зарано, то ризикуєте звернутися до недоступного файлу, що призведе допомилок.
01:42
Метод Read – ReadLines – зчитує вміст файлу кожну лінію окремо, а метод Read – зчитує увесь вміст файлу. Функція Read повертає символ нового рядка наприкінці файлу, а функція Print додає ще один символ нового рядка.
02:01
Таким чином у виводі з'являється порожний рядок. Якщо хочете видалити його, можете застосувати RStrip у виклику Print. Коли ви передаєте функції Open лише ім'я файлу, Python шукатиме його в поточній текці. Іноді залежно від того, як організована ваша робота, можна зненабитися, відкрити файл, розташований в іншій текці.
02:26
Щоб Python відкривала файли з іншої теки, а не тільки з поточною, треба надати їй шлях до файлу. Можна надати відносний шлях до файлу. Відносний шлях до файлу, каже Python, де шукати відносно поточної теки.
02:42
У Windows шляху до файлу використовується обернена скісна риска, замість просто скісної риски. Але у своєму коді ви все одно можете послуговуватися прямим слешем. Також ви можете надати Python точну локацію потрібного файлу у файловій системі, неприв'язану до розташування програми, що наразі виконується.
03:07
Такий шлях називається абсолютним шляхом до файлу. Абсолютний шлях зазвичай довший за відносний. Його можна зберегати у зміні та передавати цю змінну функцію Open. Якщо ви писатимете обернену скісну риску в шляху до файлу, отримайте
03:24
помилку, бо цей символ зарезервований для позначення спеціальних символів у стрінгу. Якщо вам потрібно обернені скісні риски, ви можете застосовувати кожну з них подвоєну. Для того, щоб зробити зчитання кожної лінії окремо із файлу, ви можете використати CycleFor.
03:44
Коли ви використовуєте ZIF, файловий об'єкт, повернений Open, буде доступний лише в середині блоку ZIF. Якщо ви хочете мати доступ до вмісту файлу поза ним, можна зберегти всі його рядки в список в середині блоку і надалі працювати з цим списком.
04:03
Так ви можете якісь частини файлу обробити одразу, а інші – в разі потреби. Після того, як ви завантажили файлу пам'ять, можете робити з цими даними що завгодно. Коли Пайтон читає з текстового файлу, він інтерпретує весь текст як рядок типу стрінги.
04:20
Якщо ви хочете зчитати число та працювати з ним як із числом, доведеться перетворити його на integer за допомогою функцією int або на float за допомогою функції float. У Пайтон немає вбудованих обмежень щодо обсягів даних. Він впорається з будь-чим, з чим здатна працювати системна пам'ять вашого комп'ютера.
04:41
Один з найпростіших способів зберегти дані – записати їх у файл. Якщо записати текст у файл, то вивід програми залишиться доступним після того, як ви закриєте термінал. Ви матимете змогу прочитати вивід після завершення роботи програми та передати вхідні дані.
05:02
Щоб записати текст у файл, викласти функцію Open, передавши їй другий аргумент, що повідомить Пайтон про ваші наміри. В цьому випадку функція Open має два аргументи. Перший – це ім'я файла або його розміщення.
05:21
Другий – каже Пайтон, що ми плануємо робити з файлом. Наприклад, A позначає режим допису до файлу. W – режим запису у файл. R – режим читання. Режим R плюс дозволяє і читати файл і записувати в нього.
05:45
Функція Open автоматично створює файл для запису, якщо його досі не існує. Якщо ви відкриваєте файл для запису у режимі W, будьте обережні. Якщо він вже існує, Пайтон зітриє його вміст, перш ніж повернути файловий об'єкт.
06:07
Пайтон може записувати в текстовий файл лише стрінг. Якщо ви хочете зберегти у такому файлі числові дані, вам треба конвертувати їх у стрінг за допомогою функції str. Функція Write не дадає переносів рядків до вашого тексту.
06:24
Якщо ви написали більше ніж один рядок і не додали символу переносу, можете отримати непривабливий вид. Якщо додати символ переносу рядка до викликів Write, то кожен стрінг відобразиться у своєму рядку. Якщо ви хочете додати щось до файлу, замість записати поверх неявного вмісту, треба відкривати його у режими допису.
06:48
Використовуючи другий аргумент A. Коли відкриваєте файл у режимі допису, Пайтон не видаляє його вміст. Усе, що ви будете дописувати, додається в кінці файлу. Якщо документа ще не існує, Пайтон створить для вас новий.
07:03
У Пайтон є спеціальні об'єкти, винятки, exceptions, для оброблення помилок, що виникають під час виконання коду. Щоразу, коли трапляється помилка, з якою Пайтон не може впоратися, створюється об'єкт виняток. Якщо ви напишете код, який все залагодить, програма продовжить роботу, інакше припинить роботу та покаже traceback,
07:27
що міститиме інформацію про згенерований виняток. Винятки обробляються за допомогою структуру Try-Accept. У ній ви кажете Пайтон, які дії необхідно виконати, а також, що робити в умовах виняткової ситуації.
07:43
Якщо використовувати структуру Try-Accept, ваша програма продовжить роботу замість traceback, який користовачев гетні та чого можна буде вивести зрозумілі повідомлення про помилки. Правильне опрацювання помилок особливо важливе, коли програма повинна зреагувати на несправність і продовжити роботу.
08:04
Це типова ситуація для застосунків, які користуються вводом від користувача. Якщо програма вчасно розпізнає некоректний ввід, вона зможе попросити користувача виправити його, не припиняючи працювати. Структура Try-Accept else працює таким чином.
08:22
Пайтон пробує виконати код у блокі Try. Тут слід писати лише той код, що може згенерувати виняток. Іноді у вас є також додатковий код, що має запускатися в разі успішного виконання коду в блокі Try. Він належить до блоку else.
08:40
Блок Accept містить інструкції на випадок, якщо у блокі Try згенеровано виняток. Метод Split розбиває стрінг на частини там, де бачить пробіл, і зберігає всі елементи в список. Іноді програма повинна перетерпіти поразку, мовчки і продовжити працювати, ніби нічого не сталося. Для цього напишіть, як завжди, блок Try, а в блокці Accept скажіть Пайтон, нічого не робити.
09:07
Напишіть там оператор Pass, який буквально означає не робити нічого. Модуль JSON позволяє вивантажити прості структури даних Python у файл, а під час наступного запуску програми завантажити їх звідти.
09:23
Також за допомогою JSON можна забезпечити обмін даними між різними програми. Формат JSON JavaScript Object Notation був створений для потреб JavaScript, однак згодом перетворився на поширений формат, який використовує безліч мов, серед них також і Python.
09:40
Волця JSON Dump приймає два аргументи – дані, що треба зберегти, та файловий об'єкт, який потрібно для цього задіяти. Вбереження інформації з допомогою JSON особливо актуальне для роботи з даними користувача. Позаяк, якщо ви не збережете інформацію, надану користувачем, то втратте її після завершення роботи програми.
10:01
Фактично, інформація в файлі JSON зберігається в тому вигляді, в якому вона представлена в Python. Тобто, якщо ви зберігаєте список, то він зберігається як список. Часно під час роботи настає момент, коли код вже працює, то ви усвідомлюєте, що його можна вдасканувати, розробивши на серію функцій, які виконують окремі специфічні завдання.
10:25
Цей процес називається рефекторингом. Завдання для саморозвитку. Зробіть програму, в якій відкривається файл для допису. В цей файл помістіть інформацію, стосовно опису якихось подій, де мається інформація у вигляді стрін та інформація висельному вигляді.
10:47
Збережіть файл, зробіть другу програму, яка відкриває цей файл та зчитує інформацію. При цьому переводіть до числового формату інформацію,
11:02
яка є в числовому форматі. Дякую за увагу, на наступних зултрижей.