Академия Eduson

Работа с текстовыми файлами. Часть 3

 Методы записи в файл «write()» и «writelines()»

 Текстовый файл words.txt содержит следующие строки:

python c#
c++
pascal

 Каким будет содержимое этого файла после выполнения программы?:

with open('words.txt', 'w') as file:
    file.write('delphi+')
    file.write('java')

 Ответ:  delphi+java

 Текстовый файл names.txt содержит следующие строки:

Timur
Roman
Ruslan
Oleg

 Каким будет содержимое этого файла после выполнения программы?:

with open('names.txt', 'a') as file:
    file.write('\n')
    file.write('Michael\n')
    file.write('Alexander')

 Ответ: 

Timur
Roman
Ruslan
Oleg
Michael
Alexander

 Текстовый файл artists.txt содержит следующие строки:

John Lennon
Bob Dylan
Stevie Wonder

 Каким будет содержимое этого файла после выполнения программы?:

with open('artists.txt', 'r+') as file:
    file.write('Mick Jagger\n')
    file.write('Ace Canon\n')

 Ответ: 

Mick Jagger
Ace Canon
Stevie Wonder

 Каким будет содержимое файла words.txt после выполнения программы?:

with open('words.txt', 'w') as output:
    print('stepik', 'beegeek', 'iq-option', sep='*', end='+\n', file=output)
    print('python', file=output)

 Ответ:  stepik*beegeek*iq-option+;     python

 Каким будет содержимое файла beegeek.txt после выполнения программы?:

with open('beegeek.txt', 'w') as file:
    file.writelines(['Добро пожаловать в Beegeek!\n', 'Наши курсы самые лучшие! '])
    file.write('Позвоните нам: (916) 928-92xx')

 Ответ:

Добро пожаловать в Beegeek!
Наши курсы самые лучшие! Позвоните нам: (916) 928-92xx

 Небольшая "область временного хранения" в оперативной памяти, куда многие операционные системы пишут данные перед тем, как записать их в файл, это:

 Ответ: буфер

 Напишите программу, которая считывает строку текста и записывает её в текстовый файл output.txt.

with open('output.txt', 'w') as output:
    output.write(input())

 Напишите программу, записывающую в текстовый файл random.txt 25 случайных чисел в диапазоне от 111 до 777 (включительно), каждое с новой строки.

from random import randint

with open('random.txt', 'w') as file:
    arr = [str(randint(111, 777)) + '\n' for i in range(25)]
    file.writelines(arr)

 Вам доступен текстовый файл input.txt, состоящий из нескольких строк. Напишите программу для записи содержимого этого файла в файл output.txt в виде нумерованного списка, где перед каждой строкой стоит ее номер, символ ) и пробел. Нумерация строк должна начинаться с 1.

a = []
count = 1

with open('input.txt') as file:
    for line in file.readlines():
        a.append(str(count) + ') ' + line)
        count += 1

with open('output.txt', 'w') as file:
    file.writelines(a)

 Вам доступен текстовый файл class_scores.txt с оценками за итоговый тест на строках вида: фамилия оценка (фамилия и оценка разделены пробелом). Оценка - целое число от 0 до 100 включительно. Напишите программу для добавления 5 баллов к каждому результату теста и вывода фамилий и новых результатов тестов в файл new_scores.txt.

a = []

with open('class_scores.txt') as file:
    for line in file.readlines():
        a.append(line.strip().split()[0] + ' ' + str(int(line.strip().split()[1]) + 5 if int(line.strip().split()[1]) < 95 else 100) + '\n')

with open('new_scores.txt', 'w') as file:
    file.writelines(a)

 Вам доступен текстовый файл goats.txt в первой строке которого написано слово COLOURS, далее идет список всех возможных цветов козлов. Затем идет строка со словом GOATS, и далее непосредственно перечисление козлов разных цветов. Перечень козлов включает только строки из первого списка. Напишите программу создания файла answer.txt и вывода в него списка козлов.

with open("goats.txt") as txt, open("answer.txt", "w") as file:
    s = txt.readlines()
    s = s[s.index("GOATS\n") + 1:]
    for i in sorted(set(s)):
        if s.count(i) / len(s) > 0.07:
            file.write(i)

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

n = int(input())
res = ''

for _ in range(n):
    with open(input()) as file:
        res += file.read()

with open('output.txt', 'w') as file:
    file.write(res)

 Вам доступен текстовый файл logfile.txt с информацией о времени входа пользователя в систему и выхода из нее. Каждая строка файла содержит три значения, разделенные запятыми и символом пробела: имя пользователя, время входа, время выхода, где время указано в 24-часовом формате. Напишите программу, которая создает файл output.txt и выводит в него имена всех пользователей (не меняя порядка следования), которые были в сети не менее часа.

def get_minutes(x):
    h, m = map(int, x.split(':'))
    return h * 60 + m

with open('logfile.txt', encoding='utf-8') as file, open('output.txt', 'w', encoding='utf-8') as out:
    for line in file:
        name, a, b = line.rstrip().split(',')
        if (get_minutes(b) - get_minutes(a)) >= 60:
            print(name, file=out)