Данный код выводит из одного файла в другой самые длинные строки(в столбик!!!). Но если получается, что в первом файле слов больше 1, то во втором файле под КАЖДОЕ слово НОВАЯ строка, не могу понять как это исправить(
“В выходной файл выведите все строки наибольшей длины из входного файла, не меняя их порядок.”
with open("C:\\Users\\User\\Desktop\\ОП\\Питон\\input.txt") as file:
text = file.readlines()
r = 0
textlen = [0]*len(text)
for i in range(len(text)):
text[i] = text[i].rstrip()
if r < len(text[i]):
r = len(text[i])
life = open(r"C:\\Users\\User\\Desktop\\ОП\\Питон\\output.txt", "w+")
for i in range(len(text)):
if len(text[i]) == r:
text[i] = text[i].split()
#if ' '.join(text[i]))#
n = text[i]
life.writelines("%s\n" % line for line in text[i])
print('Перебор завершён')
life.close()
Чет не понял ни чего.
Ваша задача прочесть строки из файла и записать те-же строки в другой файл но не строками а столбцами?
В результате получаете только первый символ строки, правильно понял?
И еще можно обойтись без циклов со счетчиками, а сразу строки проходить.
Ну и переменным желательно давать понятные имена )
with open('input.txt', 'w') as file:
file.writelines(['one\n', 'twenty one\n', 'two\n', 'twenty two\n'])
with open('input.txt') as file:
lines = file.read().splitlines()
max_line_length = 0
for line in lines:
if len(line) > max_line_length:
max_line_length = len(line)
with open('output.txt', 'w') as file:
for line in lines:
if len(line) == max_line_length:
file.write(line + '\n')