Основы программирования �на языке Python
Работа с файлами
Основные термины и понятия
Файл – место для хранения информации на внешнем носителе: на диске, флешке или магнитной ленте
Формат хранения данных в файле – это способ кодирования информации для хранения в файле.
Текстовый формат хранения данных в файле – это способ хранения информации в текстовом виде.
�ASCII – способ кодировки символов текста : один символ занимает 8 бит.
UNICOD - способ кодировки символов текста : один символ занимает 16 бит.
Текстовые файлы
Бинарные файлы
Открытие файла
open(“имя файла”, “режим”, encoding=“кодировка”) �
открывает канал связи с файлом и создает переменную для управления выбранным файлом.
После открытия файла появляется новый объект file, у которого есть методы и атрибуты.
Параметры метода open()
Файловый режим | Операция |
r | Открыть файл только для чтения |
w | Открыть существующий файл для записи. Создает новый файл, если он не существует, или открывает существующий файл и стирает все его содержимое |
a | Режим добавления текста. Открывает существующий или создает новый текстовый файл для записи в конец |
r+ | Открыть файл для чтения или записи |
w+ | Открыть файл для чтения или записи |
a+ | Открыть файл для чтения или записи в конец файла |
Если к любому из перечисленных режимов добавлена буква b, то операция будет относится к двоичному файлую Например, rb – открывает двоичный файл | |
Методы read(), read(n)
read() – читающий весь файл целиком, если был вызван без аргументов
read(n) – количество n символов, если был вызван с аргументом (целым числом n).
Пример:
Методы readline()
readline() – считывает одну строку из файла (до символа конца строки ‘\n’, возвращается считанная строка вместе с символом ‘\n’. �Если считывание не было успешно (достигнут конец файла), то возвращается пустая строка. �Для удаления символа ‘\n’ из конца файла удобно использовать метод строки rstrip().
Пример:
Методы readlines()
readlines() – ссчитывает сразу все строки и создает список
Пример:
с
Чтение из файла
Функция write()
Функция write() используется для записи в файлы Python, открытые в режиме записи.
Если пытаться открыть файл, которого не существует, в этом режиме, тогда будет создан новый.
Синтаксис
file.write(string)
Пример записи в файл:
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
Функция rename()
Функция rename() используется для переименовывания файлов в Python. Для ее использования сперва нужно импортировать модуль os.
Метод close()
После открытия файла в Python его нужно закрыть. Таким образом освобождаются ресурсы и убирается мусор. Python автоматически закрывает файл, когда объект присваивается другому файлу.
Существуют следующие способы:
Также можно написать try/finally, которое гарантирует, что если после открытия файла операции с ним приводят к исключениям, он закроется автоматически.
Без него программа завершается некорректно.
1 способ:
2 способ:
3 способ:
Чтение файла целиком. Инструкция with
Текущая позиция в файлах Python
Анализ программы (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()
В файле записано в столбик неизвестное количество чисел. Найти их сумму.
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)
Вычислить количество строк в файле
f = open('TextFile1.txt', 'r') # Открыть текстовый файл для чтения
count = 0
while s != '': # цикл чтения строк до пустой строки
s = f.readline()
count = count+1
print('count = ', count) # вывести результат
f.close() # . Закрыть файл
Практическая работа