🏠 Самостоятельная работа

⚡ Кратко

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

Задача. Копирование файла без пустых строк

Напишите программу copy_without_empty.py, которая:

  1. Принимает два аргумента командной строки: входной файл и выходной файл.
  2. Копирует содержимое, пропуская пустые строки.
  3. Использует генераторное выражение или итератор для фильтрации.

Эталонное решение

# copy_without_empty.py
import sys


def copy_without_empty(src_path: str, dst_path: str) -> None:
    """Копирует файл, пропуская пустые строки."""
    with open(src_path, "r", encoding="utf-8") as src:
        lines = (line for line in src if line.strip())
        with open(dst_path, "w", encoding="utf-8") as dst:
            dst.writelines(lines)


if len(sys.argv) != 3:
    print("Usage: python copy_without_empty.py input.txt output.txt")
    sys.exit(1)

copy_without_empty(sys.argv[1], sys.argv[2])

Как проверить в VS Code

  1. Создайте input.txt с несколькими строками, включая пустые.
  2. Создайте copy_without_empty.py с решением.
  3. Запустите: python copy_without_empty.py input.txt output.txt
  4. Откройте output.txt и убедитесь, что пустых строк нет.