Переименование текстовых файлов по первой строке в них Python

Имеется папка 'samples' в которой находится бесчисленное количество файлов формата .md (условно можно и для .txt). В каждом из этих файлов имеется несколько строк (абзацев). В первом абзаце всегда одна строка. Именно по ней нужно переименовать сам файл. Файлы сохранены изначально по названиям "1", "2", "3" ... Важно: саму эту строчку желательно после удалить из содержания файла. То есть она будто переходит в название и удаляется без пробелов в начале. Буду рад помощи!


Ответы (1 шт):

Автор решения: Gawain

Хотелось бы конечно сначала ваши попытки увидеть

import os

folder = 'samples'

files = [os.path.join(folder, x) for x in os.listdir(folder)]

for file in files:
    with open(file, 'r') as f:
        file_data = f.read()

    paragraphs = file_data.split('\n')
    first_paragraph = paragraphs[0].strip()
    new_data = '\n'.join(paragraphs[1:])
    with open(file, 'w') as f:
        f.write(new_data)

    dirname = os.path.dirname(file)
    name, ext = os.path.splitext(os.path.basename(file))
    new_name = f'{first_paragraph}{ext}'
    new_path = os.path.join(dirname, new_name)
    if os.path.exists(new_path):
        print(f'Файл с названием {new_name} уже существует! Тут надо дописать логику')
    else:
        os.rename(file, new_path)
→ Ссылка