Напишите функцию read_last(lines, file), которая будет открывать определенный файл file и выводить на печать построчно последние строки в количестве lines (на всякий случай проверим, что задано положительное целое число).
Протестируем функцию на файле «article.txt» со следующим содержимым:
Вечерело
Жужжали мухи
Светил фонарик
Кипела вода в чайнике
Венера зажглась на небе
Деревья шумели
Тучи разошлись
Листва зеленела
def read_last(lines, file):
if lines > 0:
with open(file, encoding='utf-8') as text:
file_lines = text.readlines()[-lines:]
for line in file_lines:
print(line.strip())
else:
print('Количество строк может быть только целым положительным')
# Тесты
read_last(3, 'article.txt')
read_last(-5, 'article.txt')
Деревья шумели
Тучи разошлись
Листва зеленела
Количество строк может быть только целым положительным
Выберите любую папку на своем компьютере, имеющую вложенные директории.
Выведите на печать в терминал ее содержимое, как и всех подкаталогов при помощи функции print_docs(directory).
import os
def print_docs(directory):
all_files = os.walk(directory)
for catalog in all_files:
print(f'Папка {catalog[0]} содержит:')
print(f'Директории: {", ".join([folder for folder in catalog[1]])}')
print(f'Файлы: {", ".join([file for file in catalog[2]])}')
print('-' * 40)
print_docs('C:/Program Files/Classic Shell')
Папка C:/Program Files/Classic Shell содержит:
Директории: Skins
Файлы: ClassicExplorer32.dll, ClassicExplorer64.dll, ClassicExplorerSettings.exe, ClassicIEDLL_32.dll, …
----------------------------------------
Папка C:/Program Files/Classic Shell/Skins содержит:
Директории:
Файлы: Classic Skin.skin, Classic Skin.skin7, …
Документ «article.txt» содержит следующий текст:
Вечерело
Жужжали мухи
Светил фонарик
Кипела вода в чайнике
Венера зажглась на небе
Деревья шумели
Тучи разошлись
Листва зеленела
Требуется реализовать функцию longest_words(file), которая выводит слово, имеющее максимальную длину (или список слов, если таковых несколько).
def longest_words(file):
with open(file, encoding='utf-8') as text:
words = text.read().split()
max_length = len(max(words, key=len))
sought_words = [word for word in words if len(word) == max_length]
if len(sought_words) == 1:
return sought_words[0]
return sought_words
print(longest_words('article.txt'))
разошлись
Требуется создать csv-файл «rows_300.csv» со следующими столбцами:
– № - номер по порядку (от 1 до 300);
– Секунда – текущая секунда на вашем ПК;
– Микросекунда – текущая миллисекунда на часах.
На каждой итерации цикла искусственно приостанавливайте скрипт на 0,01 секунды.
import csv
import datetime
import time
with open('rows_300.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(['№', 'Секунда ', 'Микросекунда'])
for line in range(1, 301):
writer.writerow([line, datetime.datetime.now().second, datetime.datetime.now().microsecond])
time.sleep(0.01)
№,Секунда ,Микросекунда
1,51,504807
2,51,515807
3,51,526819
4,51,537817
5,51,548800
6,51,558817
…
При помощи библиотеки Pillow в директории circles (создайте ее во время выполнения функции) нарисуйте и сохраните 100 кругов радиусом 300 пикселей случайных цветов в формате jpg на белом фоне (каждый круг - отдельный файл). Для этого напишите функцию circles_generator(num_of_circles=100).
$ pip install Pillow
from random import randint
import os
from PIL import Image, ImageDraw
def circles_generator(num_of_circles=100):
if not os.path.exists('circles'):
os.mkdir('circles')
for pic_name in range(1, num_of_circles + 1):
img = Image.new('RGB', (600, 600), (255, 255, 255))
draw = ImageDraw.Draw(img)
draw.ellipse((0, 0, 600, 600), fill=(randint(0, 255), randint(0, 255), randint(0, 255)))
img.save(f'circles/{pic_name}.jpg', quality=85)
circles_generator()