Работа с файлови обекти: функцията за отваряне, четене и запис на файлове в Python

Файловете принадлежат към основните типове данни за езика на Python. Това е свързващ интерфейс между кода и посочените области на компютърна памет. Файловете изпълняват функцията на "запазване" на обекти. Те ви позволяват да съхранявате всяка информация с последващото разтоварване и обработка. Ще разгледаме как да записваме файл в Python и да четем обратно данни с практически примери.

Как да отворите файл?

Работата с този тип данни започва с вградената отворена функция. Той създава обект на файл, който осигурява комуникация с външен документ на компютъра. След като извикате функцията, можете да изпълнявате операции за четене или запис във файлове в Python.


За начинаещи, работата с файлове ще изглежда сложна. Те се различават от обичайните линии, числа, речници. За да взаимодействате с тях, не се използват литерали на последователности или отражения, само методи. Повечето от методите са насочени към въвеждане на входна и изходна информация, но има и по-специфични. Например инструкцията output.flush (), която извежда изходни буфери на диск. Но нека започнем с проучване как да отворим файл. На първо място, трябва да се обадите на open (), в скобите да дадете функцията, името на външния файл и режима на работа с него:
  • r - означава, че по подразбиране ще се отвори режим на четене;
  • w - режим на запис за файлове в Python;
  • a - за записване на информация в края на документа;
  • b - обработка на двоични файлове;
  • знакът "+" означава четене и запис в същото време.
  • Важно правило е, че всички аргументи трябва да бъдат определени като редове от линии, т.е. по двойки и запетаи:


  • This_file = open ("C: odd", "w") # Пример за отворено повикване интегрирана среда за развитие.
  • Как се използват файлове?

    След като файлът е отворен, можете да използвате всички негови методи. Съдържанието за четене ще бъде представено като редове. За да пишете във файлове в Python информацията трябва да има и формата на обекти от низове. Списък на най-използваните операции:
  • input.read () - връща информация като един ред;
  • input.readline () - чете следващия ред;
  • input.readlines () - изпрати файл за четене изцяло със списък от редове;
  • .write () - линии за запис;
  • .writelines () - запис на всички редове;
  • .close () - ръчно затваряне на документа.
  • Характеристики на работа с файлове

    Цялата информация, съдържаща се във файловете, се представя като низ обект. Следователно, преди да започнете да го обработвате, трябва да конвертирате данни. Използвайте вградените методи int () или list () за това. Също така, изрази за форматиране на низове. Методът за затваряне не е задължителен. Но когато се работи с флъш, ресурсите на операционната система се освобождават и изходните буфери се изтласкват. По подразбиране изходът е чрез междинни буфери. Когато записът е направен във файл в Python, информацията не се появява веднага на диска, а само по време на затварянето.

    Пример за запис в файл

    Да разгледаме пример за работа с текстов файл винтерактивна сесия. Първата стъпка е да отворите файла в IDLE. Предварително създаване не е необходимо:
  • first_f = open ("first_file.txt", "w")
  • first_f.write ("Всеки текст") # Напишете ред
  • 12
  • ]
  • first_f.write ("И отново, всеки текст")
  • 20
  • first_f.close () # Затворен;
  • first_f = open ("first_file.txt")
  • first_f.readline () # Прочетете какво е написано
  • "Всеки текст"
  • След като линията е написана Във файла Python 3.0 връща броя на въведените знаци. Това не се случва в предишната версия. В примера се използва характерът на края на линия n. Без него, методът на запис записва целия твърд текст.
    Ако искате да прочетете съдържанието на даден файл, без да посочите n в края, използвайте read:
  • print (open ("first_file.txt"). Read ())
  • текст;
  • и отново текста;
  • Можете да видите всеки ред на свой ред чрез неговата итерация:
  • за x in open ("first_file.txt"):
  • print (x, end = "")
  • - какъв текст
  • и отново текст # Всеки нов ред ще бъде отстъпен.
  • Запазване на основни езици на Python език

    Можете да запишете всички вградени или ръчно създадени обекти в текстов файл. За да записвате файлове в Python последователно, всеки елемент трябва да бъде предварително преобразуван в линия. Също така не забравяйте, че методите не форматират данни.
  • Пример_2 = отворен ("second_file.txt", "w")
  • Списък = [1,8, "r"]
  • C, B, P = 349056
  • Page = "Набор символи"
  • Example_2.write (str (Списък) + "n")
  • 12
  • Example_2.write («% s,% s,% sn »% [C, B, P])
  • 11
  • Example_2.write (страница +« n »)
  • 15
  • Example_2.close ()
  • print (open ("second_file.txt") read ())
  • [1, 8, r]
  • 349056
  • ]
  • набор от знаци
  • В този пример първо се създава нов файлов обект "second_file.txt", за да бъде написан. Пет имена се присвояват на стойността на списък, низ и цели числа. Преди запис, всеки обект се преобразува в низ. Накрая файлът се отваря с помощта на вградената функция за печат и метода read.

    По същия принцип, Python записва речников запис във файл. Трябва да извикате функцията str и да я предадете като аргумент обект. Най-трудното не е да запишете данните, а да ги получите и да ги превърнете обратно в речници или числа. Преобразуването на низ в обекти на езика ще помогне на метода на readline:
  • L = open ("second_file.txt")
  • F = L. readline ()
  • F
  • "749056n"
  • Числа = F. разделени (",") # com, разделени на подстрани
  • Числа
  • ["34", "90", "56n"]
  • Числа = [int (x) за x в числа] # Конвертиране на целия списък
  • Числа
  • [34, 90, 56]
  • Обекти, използващи специални модули

    Стандартната библиотека включва модул, наречен pickle. Това е изключително полезен инструмент за записване и извличане на информация. Особено, когато не се доверявате на източника на файла. Модулът е универсална програма, която автоматично форматира и конвертира данни. За да напишете обект от какъвто и да е тип (речник), достатъчно е да го предадете на туршия:
  • Речник = {«осем»: 8 «три»: 3 «нула»: 0}
  • Речник
  • {«осем»: 8 «три»: 3 «нула»: 0}
  • документ = отворен («мойдокумент.pкл», «wb»)
  • внос туршия
  • ]
  • roosol.dump (речник, документ)
  • document.close ()
  • документ = отворен ("моят документ.pkl", "rb")
  • D = pickle.load (документ)
  • D
  • 92) {"осем": 8 "три": 3 "нула": 0}С модула няма нужда да извличате и конвертирате данни ръчно. Самият той извършва сериализацията на обекти в ред от байтове и обратно. За да направите това, в откритите аргументи е посочен бинарникът wb-write. Подобно на туршия, можете да "запазите" данните с помощта на модула Python - JSON. Записването във файл се извършва чрез метода dump. Аргументите включват съхранени обекти, които се сериализират автоматично в JSON-формат.
  • внос json
  • речник = {«осем»: 8 «три»: 3 «нула»: 0}
  • с отворен («моят документ.json», «w») m_d:
  • json.dump (Речник, m_d)
  • Има по-сложни начини за работа с файлове. Например операцията по сканиране, организацията на циклите на записване. За да видите пълния списък на методите, използвайте функциите help или dir в интерактивната сесия. Също така, в арсенала от езици има обекти, които са подобни на файлове - сокети, черупки и I /O потоци.

    Свързани публикации