как обработать файл что бы в строке стало по 10 строк

есть файл на 1000 строк нужно обработать файл так что бы в новом файле стало в одной строке 10 строк в итоге 100 строк (добавив разделитель в виде запятой ',') как это сделать на python и второй вариант как так сделать в блокноте?

i=0
for line in file:
    str=''.join(''line'')
    if i % 10 == 0:
        print (str)
        str=''
i++

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

Автор решения: Alex alexeev

Реализация на python

# Открываем исходный файл для чтения
with open('input.txt', 'r') as input_file:
    # Читаем все строки в список
    lines = input_file.readlines()

# Создаем новый пустой список для хранения объединенных строк
combined_lines = []

# Объединяем каждые 10 строк в одну строку через запятую
for i in range(0, len(lines), 10):
    combined_line = ', '.join([line.strip() for line in lines[i:i+10]])
    combined_lines.append(combined_line)

# Записываем результат в новый файл
with open('output.txt', 'w') as output_file:
    output_file.write('\n'.join(combined_lines))

Если имеется ввиду ms блокнот, то ручками

→ Ссылка
Автор решения: Stanislav Volodarskiy

chunks любую последовательность нарезает на порции заданного размера. Последняя порция может оказаться короче.

def chunks(seq, k):
    """Split seq into chunks of size k."""
    chunk = []
    for item in seq:
        chunk.append(item)
        if len(chunk) >= k:
            yield chunk
            chunk = []
    if chunk:
        yield chunk

trim_trailing_newline отрезает от строки перевод строки в конце, если он есть. Это нужно потому что конструкция for line in f: перебирает строки с переводами в конце, их надо удалять. Последняя строка файла может быть и без перевода строки и даже пустая.

def trim_trailing_newline(line):
    """Remove last new line character if any."""
    return line[:-1] if line[-1:] == '\n' else line

join_lines читает файл по строкам, удаляет из строк переводы строк, собирает строки в пачки из k штук разделённые разделителем sep.

def join_lines(f, k, sep):
    """Joins chunks of k sequential lines from file f."""
    for c in chunks(map(trim_trailing_newline, f), k):
        yield sep.join(c)

main читает входной поток, объединяет строки, печатает результат в выходной поток.

def main():
    for line in join_lines(sys.stdin, 10, ','):
        print(line)

Использование:

python join.py < input.txt > output.txt
→ Ссылка