Отваряне и затваряне на файл
За да четете данни от текстов файл с име „данни.txt “, трябва да използвате метода„ отворен “, който се предлага с официалните компилации на Python. Проверете примерния код по-долу:
f = отворен ('данни.txt ',' r ')е.близо()
Първото изявление отваря „данните.txt ”файл в режим„ r ”(само за четене). Методът „отворен“ приема името на файла и режима за обработка на файла като аргументи. Освен режим „r“, има и други режими, които ще бъдат обяснени по-късно. Кодовият фрагмент по-горе не изпълнява никакви операции с отворения файл. Методът „затваряне“ се използва за чисто затваряне на отворения файл, за да се освободи паметта и за да се избегне повреда на данните в отворения файл, която може да се случи понякога, ако файлът не е затворен правилно.
Вместо да използвате метода „отворен“ за обработка на отваряне и затваряне на файлове, можете да го комбинирате с ключова дума „с“ и да използвате израза „с отворен“.
с отворен ('данни.txt ',' r ') като f:мине
Основното предимство на използването на оператор „с отворен“ е, че интерпретаторът автоматично затваря отворения файл безопасно, когато блокът „с отворен“ код е анализиран напълно. Въпреки че събирачът на боклук в Python автоматично затваря отворени файлове след известно време според предварително зададените правила, „с отворени“ инструкции гарантират, че файлът е чисто затворен веднага щом кодовият блок приключи, за да освободи ресурси.
Четене на редове от текстов файл
За да прочетете съдържанието на файл, използвайте примерния код по-долу:
с отворен ('данни.txt ',' r ') като f:данни = е.Прочети()
печат (данни)
Например, ако „данни.txt ”файлът има 1-10 номера, всеки на нов ред, ще получите следния изход след стартиране на горния код:
12
3
4
5
6
7
8
9
10
Цялото изхвърляне на данни на „data.txt ”файлът се съхранява в променливата„ data ”. Ако искате да прочетете редове в списък, можете да използвате следните примерни кодове:
с отворен ('данни.txt ',' r ') като f:данни = е.прочетени линии ()
print (data) с open ('data.txt ',' r ') като f:
данни = списък (f)
печат (данни)
Имайте предвид, че използването на горни фрагменти може да ви даде символа „\ n“ (нов ред) в края на всеки елемент в списъка. За да премахнете тези символи от нов ред, може да се наложи да прегледате списъка. Можете както да създадете нов списък, така и да премахнете символи от нов ред, като използвате следния код:
data_list = []с отворен ('данни.txt ',' r ') като f:
за ред в f:
списък с данни.добавяне (ред.Лента())
печат (списък с данни)
Изпълнението на горния код ще ви даде следния изход:
[„1“, „2“, „3“, „4“, „5“, „6“, „7“, „8“, „9“, „10“]Записване на данни в отворен файл
За да запишете данни във файл, който се отваря с помощта на оператора „с отворен“, ще трябва да предоставите различен режим на отваряне като аргумент. Ето някои от режимите:
- 'a' - използва се за добавяне на данни в края на отворен файл, създава нов файл, ако не съществува
- 'w' - изтрива съдържанието на отворения файл и записва нови данни, създава нов файл, ако не съществува
- 'r' - режим само за четене (режим по подразбиране, ако не е предоставен аргумент)
- 'r +' - използва се както за четене, така и за писане (първоначалната позиция е в началото на файла)
- 'b' - файлът се отваря в двоичен режим (полезен за нетекстови двоични файлове), може да се комбинира с други режими
- 'a +' - използва се за четене и добавяне, създава нов файл, ако не съществува
- 'w +' - използва се за четене и писане, създава нов файл, ако не съществува
Някои кодови фрагменти, използващи различни режими за запис на данни, са изброени по-долу.
За да напишете ново съдържание в текстов файл, докато изтривате съществуващи данни, използвайте следната извадка:
с отворен ('данни.txt ',' w ') като f:е.запис ("1 \ n2")
След като стартирате горния фрагмент, 1-10 числа в „данни.txt ”файлът трябва да бъде заменен с два нови реда.
За да добавите редове в началото на текстов файл, трябва да използвате метода „търси“, за да се върнете в началната позиция на файловия буфер:
с отворен ('данни.txt ',' r + ') като f:данни = е.Прочети()
е.търся (0)
е.запис ("- 1 \ n0 \ n")
е.запис (данни)
След стартиране на горния фрагмент, числата -1 и 0 ще бъдат добавени към горните два реда в „данни.txt ”файлове.
За да добавите данни в края на файла, използвайте следната извадка:
с отворен ('данни.txt ',' a ') като f:е.запис ("11 \ n12")
След стартиране на горния фрагмент, 11 и 12 числа ще бъдат добавени в края на файла.
Заключение
Вградените класове и методи в Python осигуряват надежден начин за обработка на текстови файлове. Само с няколко реда код можете да манипулирате съществуващите данни във файл, както и да вмъквате нови редове.