-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtask2.txt
47 lines (34 loc) · 2.88 KB
/
task2.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Цель: Закрепить знания о позиционировании в файле, использовав метод tell() файлового объекта. Написать усовершенствованную функцию записи.
Задача "Записать и запомнить":
Создайте функцию custom_write(file_name, strings), которая принимает аргументы file_name - название файла для записи, strings - список строк для записи.
Функция должна:
Записывать в файл file_name все строки из списка strings, каждая на новой строке.
Возвращать словарь strings_positions, где ключом будет кортеж (<номер строки>, <байт начала строки>), а значением - записываемая строка. Для получения номера байта начала строки используйте метод tell() перед записью.
Пример полученного словаря:
{(1, 0): 'Text for tell.', (2, 16): 'Используйте кодировку utf-8.'}
Где:
1, 2 - номера записанных строк.
0, 16 - номера байт, на которых началась запись строк.
'Text for tell.', 'Используйте кодировку utf-8.' - сами строки.
Пример результата выполнения программы:
Пример выполняемого кода:
info = [
'Text for tell.',
'Используйте кодировку utf-8.',
'Because there are 2 languages!',
'Спасибо!'
]
result = custom_write('test.txt', info)
for elem in result.items():
print(elem)
Вывод на консоль:
((1, 0), 'Text for tell.')
((2, 16), 'Используйте кодировку utf-8.')
((3, 66), 'Because there are 2 languages!')
((4, 98), 'Спасибо!')
Как выглядит файл после запуска:
Примечания:
Не забывайте при записи в файл добавлять спец. символ перехода на следующую строку в конце - '\n'.
Не забывайте закрывать файл вызывая метод close() у объектов файла.
Помните, что при использовании символов не принадлежащих таблице ASCII, вы используете больше байт для записи символа. Соответственно для чтения и записи информации из/в файл(-f) потребуется другая кодировка - utf-8.
Файл module_7_2.py и загрузите его на ваш GitHub репозиторий. В решении пришлите ссылку на него.