Работа с текстовыми файлами в Python




Работа с текстовыми файлами в Python

Вопросы для отчета

1. Что такое файл?

2. С помощью каких команд файл открывается, какие есть параметры у этих команд?

3. Почему надо обязательно закрывать файл и какой командой это можно сделать.

4. Как производится чтение в текстовом файле, какие есть параметры у соответствующих команд?

5. Как производится запись в текстовый файл, какие есть параметры у соответствующих команд?

Теоретическая справка

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

f = open('text.txt', 'r')

Первый аргумент функции путь к файлу, который может быть относительным или абсолютным. Второй аргумент, это режим, в котором мы будем открывать файл.

Режим Обозначение
'r' открытие на чтение (является значением по умолчанию).
'w' открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.
'x' открытие на запись, если файла не существует, иначе исключение.
'a' открытие на дозапись, информация добавляется в конец файла.
'b' открытие в двоичном режиме.
't' открытие в текстовом режиме (является значением по умолчанию).
'+' открытие на чтение и запись

Режимы могут быть объединены, то есть, к примеру, 'rb' - чтение в двоичном режиме. По умолчанию режим равен 'rt'. И последний аргумент, encoding, нужен только в текстовом режиме чтения файла. Этот аргумент задает кодировку.

Для чтения информации из файла есть несколько способов.

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

>>> f = open('text.txt')

>>> f.read(1)

'H'

>>> f.read()

'ello world!\nThe end.\n\n'

 

Можно прочитать файл построчно c помощью метода readline, или воспользовавшись циклом for:

>>> f = open('text.txt')

>>> for line in f:

... line

...

'Hello world!\n'

'\n'

'The end.\n'

'\n

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

 

>>>

>>> for index in l:

... f.write(index + '\n')'

После окончания работы с файлом его обязательно нужно закрыть с помощью метода close:

>>> f.close()

 

Решение задач

Задание 1. Текстовый файл состоит не более чем из 106 символов A, B и C. Определите максимальное количество повторов любого из символов. Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.

Решение:

s=[]

k=1

f=open('224.txt', 'r')

a=f.read()

n=len(a)

for i in range(n-2):

if a[i]==a[i+1]:

k+=1

else:

s.append(k)

k=1

f.close()

k=max(s)

print(k)

 

Исправьте программу, чтобы она считала сколько в файле цепочек “ABC”.

 

 

Задание 2. Организовать ввод данных файл до тех пор, пока не будет введена пустая строка.

 

fname = input('Файл: ')
f = open(fname,'w')
while True:
s = input()
if s == '': break
f.write(s+'\n')
f.close()

 

Исправьте программу, чтоб окончанием ввода был «0», а также выполнялся подсчет строк и символов в файле.

 

f = open('text.txt')
line = 0
for i in f:
line += 1
flag = 0
word = 0
for j in i:
if j!= ' ' and flag == 0:
word += 1
flag = 1
elif j == ' ':
flag = 0
print(i,len(i),'симв.',word,'сл.')
print(line,'стр.')
f.close()

 

Задание для самостоятельной работы.

1.Напишите программу, которая сравнивает два файла между собой, сначала количество символов, а затем содержание. Результаты сверки записывает в отдельный файл.

2.Системный администратор раз в неделю создаёт архив пользовательских файлов. Известно, какой объём занимает файл каждого пользователя. По заданной информации об объёме файлов пользователей и свободном объёме на архивном диске определите максимальное число пользователей, чьи файлы можно сохранить в архиве, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.

Запишите в ответе два числа: сначала наибольшее число пользователей, чьи файлы могут быть помещены в архив, затем максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.

Пример входного файла:

100 4

При таких исходных данных можно сохранить файлы максимум двух пользователей. Возможные объёмы этих двух файлов 30 и 40, 30 и 50 или 40 и 50. Наибольший объём файла из перечисленных пар — 50, поэтому ответ для приведённого примера:

2 50

Пояснение:

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

3. В имеющемся текстовом файле, содержащем набор чисел, удалите все четные числа и замените кратные 3 на нуль.

4. Дан текстовый файл, замените в нем каждое третье предложение на «Привет!».

Пояснение:

Считываем содержание файла. Преобразовываем его в список по предложениям (точка является знакоразделителем). Заменяем каждый третий элемент списка. Записываем список построчно в файл.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-01-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: