№ 24

Считываем данные из файла

Если файл состоит из одной строки:

f = open('file_name.txt')
s = f.readline().strip() # В переменную s считали строку
f.close() # Не забываем закрывать файл!

Например, для файла

PRO100 ЕГЭ

В s окажется строка PRO100 ЕГЭ.

Если файл состоит из любого количества строк:

Вариант 1

f = open('file_name.txt')
a = [] # Список, в котором будем хранить строки
for s in f:
    s = s.strip() # Удаляем '\n'
    a.append(s)
f.close()

Вариант 2

f = open('file_name.txt')
a = [s.strip() for s in f] 
f.close() 

Например, для файла

PRO100 ЕГЭ
Информатика
100 баллов

В a окажется список строк ['PRO100 ЕГЭ', 'Информатика', '100 баллов'].

Если файл состоит из любого количества строк, в каждой из которых записано одно число:

Вариант 1

f = open('file_name.txt')
a = [] # Список, в котором будем хранить числа
for s in f:
    chislo = int(s) # Переводим строку в число. Можно обойтись без strip.
    a.append(chislo) 
f.close() 

Вариант 2

f = open('file_name.txt')
a = [int(s) for s in f] 
f.close()

Например, для файла

1212
2
68
8

В a окажется список чисел [1212, 2, 68, 8].

Если файл состоит из любого количества строк, в каждой из которых записано одно число, при этом число в первой строке означает количество чисел в файле, кроме данного числа:

Вариант 1

f = open('file_name.txt')
n = int(f.readline()) 
a = [] 
for s in f:
    chislo = int(s) 
    a.append(chislo) 
f.close()
print(a)

Вариант 2

f = open('file_name.txt')
n = int(f.readline())
a = [int(s) for s in f] 
f.close()

Например, для файла

4
123
321
68
86

В n окажется число 4, а в a окажется список чисел [123, 321, 68, 86].

Тренировка

Текстовый файл file_1.txt содержит строку из символов английского алфавита. Найдите символ, который находится на позиции с индексом 1000. Нумерация позиций начинается с нуля. Например, позиция с индексом 2 – третья по счёту позиция.


Текстовый файл file_2.txt содержит строки, состоящие из символов английского алфавита. Среди всех строк найдите строку наибольшей длины. В ответ запишите из скольких символов английского алфавита она состоит.


Если файл состоит из любого количества строк, в каждой из которых записано ровно два числа:

Пример файла:

1 2
3 4
5 6

Код программы: 

f = open('file_name.txt')
a = [] # Список, в котором будем хранить пары чисел

for s in f:
    chislo_1, chislo_2 = [int(x) for x in s.split()]
    a.append([chislo_1, chislo_2]) # В список 'a' добавляем список, содержащий два считанных числа
    
f.close() 
print(a) # [[1, 2], [3, 4], [5, 6]]

Если файл состоит из любого количества строк, в каждой из которых записано любое количество чисел:

Пример файла:

1 2 3
4
5 6 7 8 9 10
11 12
13
14

Вариант 1

f = open('file_name.txt')
a = [] # Список, в котором будем хранить списки чисел

for s in f:
    tek_chisla = [int(x) for x in s.split()] # Находим и сохраняем числа из текущей строки в список
    a.append(tek_chisla) # В список 'a' добавляем список, содержащий все считанных числа из текущей строки
    
f.close() 
print(a) # [[1, 2, 3], [4], [5, 6, 7, 8, 9, 10], [11, 12], [13], [14]]

Вариант 2

f = open('file_name.txt')
a = [[int(x) for x in s.split()] for s in f]   
f.close() 
print(a) # [[1, 2, 3], [4], [5, 6, 7, 8, 9, 10], [11, 12], [13], [14]]

Задания


Текстовый файл 24-j5.txt состоит не более чем из 106 символов S, T, O, C, K. Сколько раз встречается в файле комбинация «KOT»?


Текстовый файл содержит последовательность из символов «(»и «)», всего не более 106 символов. Определите количество пар скобок «()» в этом файле.  


Текстовый файл состоит не более чем из 106 символов S, T, O, C, K. Сколько раз встречается комбинация «TOK», не являющаяся при этом частью комбинации «TOTOK».


Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых буква S встречается столько же раз, сколько и буква X.


Текстовый файл состоит не более чем из 106 заглавных латинских букв. Определите символ, который чаще всего встречается в файле. В ответе запишите сначала этот символ, а потом сразу (без разделителя) сколько раз он встречается в файле. Если таких символов несколько, нужно вывести тот, который стоит раньше в алфавите. Например, для текста AABCBBA ответ — A3.

Обновлено: Апрель 24, 2025 — 10:45 дп

Добавить комментарий