Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
питон ТП6 / Bilety_Programmirovanie.docx
Скачиваний:
9
Добавлен:
18.08.2022
Размер:
952.96 Кб
Скачать
  1. Работа с текстовыми файлами: открытие файла, ввод, вывод данных

При работе с файлами необходимо : открыть файловый поток для чтения/записи/дозаписи, считать/записать данные,  закрыть файловый поток.  Открытие файлового потока  Открытие файлового потока производится с помощью функции open. Формат записи этой функции:  open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) - возвращает файловый поток  У этой функции много параметров, через знак равенства указаны значения параметров по умолчанию. Рассмотрим первые два из них.  file - строка с именем файла на диске. Если файл лежит в папке, отличной от папки с программой, то нужно указать полный путь к файлу  mode - строка, которая означает режим открытия файла (для чтения/ для записи). Значение по умолчанию этого параметра 'r' - открыть для чтения. Режимы открытия файла могут быть следующими  'r'  открытие на чтение (является значением по умолчанию)  'w'  открытие на запись, содержимое файла удаляется, если файла не существует, создается новый  'x' открытие на запись, если файла не существует, иначе исключение  'a' открытие на дозапись, информация добавляется в конец файла  'b' открытие в двоичном режиме  't'  открытие в текстовом режиме (является значением по умолчанию)  '

Последний аргумент, encoding, нужен только в текстовом режиме чтения файла. Этот аргумент задает кодировку файла.  Следующая команда открывает файл file_name.txt из текущей папки для чтения, f - файловый поток, связанный с этим файлом.  f = open('file_name.txt')  Чтение из файла  Открыли мы файл, а теперь мы хотим прочитать из него информацию. Для этого есть несколько способов.  f.read([size]) – считывает некоторый объем данных размера [size] из файла  f.read() – считывает весь файл  f.readline() – считывает строку из файла  f.readlines() – считывает все содержимое файла и возвращает список строк.  После работы с файлом его надо закрыть с помощью метода close: f.close().  Рассмотрим примеры считывания данных из файла  In [8]:  f = open('file_name.txt')  s = f.read() #считали все содержимое файла в строку s  print(s) #вывели строку со всем содержимым файла  f.close() #закрытие файла  В файле содержится некоторая текстовая информация  Строка 1  Строка 2  И еще чуть-чуть текста  Конец текста  f = open('file_name.txt')  s = f.readline() #считали первую строку файла в строку s  print(s) #вывели первую строку файла  f.close() #закрытие файла  В файле содержится некоторая текстовая информация : 

f = open('file_name.txt')  s = f.readlines() #считали все содержимое файла в список s  print(s) #вывели список строк  f.close() #закрытие файла  ['В файле содержится некоторая текстовая информация\n', 'Строка 1\n', 'Строка 2\n', 'И еще чуть-чуть текста\n', 'Конец текста']  Получили список, элементы которого - строки файла. Символ '\n' - специальный символ, который означает переход на новую строку. 

Есть ещё один способ прочитать файл построчно, воспользовавшись циклом for.  In [11]:  f = open('file_name.txt')  for line in f:  print(line)  В файле содержится некоторая текстовая информация  Строка 1  Строка 2  И еще чуть-чуть текста  Конец текста

Запись в файл  Теперь рассмотрим запись в файл. Для записи данных в файл существует несколько методов  f.write(s) записывает в файл строку s  f.writelines( <последовательность строк>) – записывает в файл <последовательность строк>  Попробуем записать в файл список чисел от 1 до 100 с шагом 5.  Для этого откроем файловый поток для записи и свяжем его с файлом text.txt из текущей папки. Если файла не существует, то программа создаст его. Если такой файл в папке уже имеется, то его содержимое будет стерто, и он будет открыт для записи.  f = open('text.txt', 'w')  for i in range(1, 101, 5):  f.write(str(i) + ' ')  f.close()  Теперь попробуем вывести то, что мы записали в файл text.txt  In [13]:  g = open('text.txt') #открыли файл для чтения  print(g.read()) #вывели на экран все содержимое файла  g.close() #закрыли файловый поток  Дан текстовый файл input.txt. Найти в файле самую длинную строку. Если таких строк несколько, то вывести ту, которая встречается первой. f = open('input.txt') #открытие файлового потока  s = f.readlines() #считали все содержимое файла в список s  s.sort(key=lambda x:len(x), reverse=True)# отсортируем строки в порядке убывания длины строк  print(s[0]) #строка с максимальной длиной  f.close() #закрытие файлового потока 

Соседние файлы в папке питон ТП6