1 of 22

Основы программирования �на языке Python

Работа с файлами

2 of 22

Основные термины и понятия

Файл – место для хранения информации на внешнем носителе: на диске, флешке или магнитной ленте

Формат хранения данных в файле – это способ кодирования информации для хранения в файле.

Текстовый формат хранения данных в файле – это способ хранения информации в текстовом виде.

ASCII – способ кодировки символов текста : один символ занимает 8 бит.

UNICOD - способ кодировки символов текста : один символ занимает 16 бит.

3 of 22

Текстовые файлы

4 of 22

Бинарные файлы

5 of 22

Открытие файла

open(“имя файла”, “режим”, encoding=“кодировка”) �

открывает канал связи с файлом и создает переменную для управления выбранным файлом.

После открытия файла появляется новый объект file, у которого есть методы и атрибуты.

6 of 22

Параметры метода open()

Файловый режим

Операция

r

Открыть файл только для чтения

w

Открыть существующий файл для записи. Создает новый файл, если он не существует, или открывает существующий файл и стирает все его содержимое

a

Режим добавления текста. Открывает существующий или создает новый текстовый файл для записи в конец

r+

Открыть файл для чтения или записи

w+

Открыть файл для чтения или записи

a+

Открыть файл для чтения или записи в конец файла

Если к любому из перечисленных режимов добавлена буква b, то операция будет относится к двоичному файлую Например, rb – открывает двоичный файл

7 of 22

Методы read(), read(n)

read() –  читающий весь файл целиком, если был вызван без аргументов

read(n) – количество n символов, если был вызван с аргументом (целым числом n).

Пример:

8 of 22

Методы readline()

readline() –  считывает одну строку из файла (до символа конца строки ‘\n’, возвращается считанная строка вместе с символом ‘\n’. �Если считывание не было успешно (достигнут конец файла), то возвращается пустая строка. �Для удаления символа ‘\n’ из конца файла удобно использовать метод строки rstrip()

Пример:

9 of 22

Методы readlines()

readlines()  ссчитывает сразу все строки и создает список

Пример:

с

10 of 22

Чтение из файла

11 of 22

Функция write()

Функция write() используется для записи в файлы Python, открытые в режиме записи.

Если пытаться открыть файл, которого не существует, в этом режиме, тогда будет создан новый.

Синтаксис

file.write(string)

12 of 22

13 of 22

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

a = 1

b = 2

f = open( "output.txt", "w" )

c = a + b

f.write(str(c))

f.close()

f = open("output.txt")

print(f.readline())

Вывод: 3

14 of 22

Функция rename()

Функция rename() используется для переименовывания файлов в Python. Для ее использования сперва нужно импортировать модуль os.

15 of 22

Метод close()

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

Существуют следующие способы:

Также можно написать try/finally, которое гарантирует, что если после открытия файла операции с ним приводят к исключениям, он закроется автоматически.

Без него программа завершается некорректно.

1 способ:

2 способ:

3 способ:

16 of 22

Чтение файла целиком. Инструкция with

17 of 22

Текущая позиция в файлах Python

18 of 22

19 of 22

Анализ программы (1.py)

#f = open('story.txt', encoding="utf-8")

# line = f.read() # метод read без параметров считывает ВЕСЬ файл

# print(line, end='') # в строках есть символ \n, поэтому в print не нужно

# f.close() # закрыть файл

#f = open('story.txt', 'r', encoding="utf-8")

#line = f.read(10) # считывается 10 первых символов

#print(line, end='')

# f.close() # закрыть файл

f = open('story.txt','r',encoding="utf-8")

line = f.readline() # метод readline обеспечивает считывание строки

print(line, end='')

while len(line) > 0: # длина последней строки в файле равна 0

line = f.readline() # читаем следующую строку

print(line, end='')

f.close() # закрыть файл

# Запись в текстовый файл выполняется с помощью метода write:

f = open('vorona.txt','w')

line = 'Почему вороны не едят крокодилов?\nПотому что'

f.write(line) # метод write обеспечивает запись всей строки

f.close()

20 of 22

В файле записано в столбик неизвестное количество чисел. Найти их сумму.

1 вариант:�

sum = 0

f = open ("input.txt")

for s in f.readlines():

sum += int(s)

f.close()

print(sum)

2 вариант

sum = 0

with open ("input.txt" ) as f:

for s in f:

sum += int(s)

print(s)

21 of 22

Вычислить количество строк в файле

f = open('TextFile1.txt', 'r') # Открыть текстовый файл для чтения

count = 0

while s != '':       # цикл чтения строк до пустой строки

s = f.readline()

count = count+1

print('count = ', count) # вывести результат

f.close() # . Закрыть файл

22 of 22

Практическая работа