Программа принимает на вход высоту, ширину (--frame-height, --frame-width) блока в символах и имя файла, а на выходе выводит содержимое (начальную часть) файла которое помещается в указанные размеры.
Если строка не умещается по длине, то ее нужно перенести.
Вся логика форматирования должна быть реализована в функции format_text_block(frame_height, frame_width, file_name), которая возвращает отформатированный текст и в дальнейшем может быть использована в других скриптах.
В случае возникновения ошибок при работе с файлом необходимо вернуть текст исключения, которое выбрасывается в этой ситуации.
мой код :
import argparse
def format_text_block(height, width, text):
try:
s = open(text).readlines()
z, out = [], []
for i in s:
if len(i) == 1 and i.find('\n') != -1:
z.append(i)
else:
z.append(i.replace('\n', ''))
for line in ''.join(z).split('\n'):
for i in range(0, len(line), width):
out.append(line[i:i + width])
else:
out.append('')
return '\n'.join(out[:height])
except Exception as e:
return e
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--frame-height', type=int)
parser.add_argument('--frame-width', type=int)
parser.add_argument('filename', type=str)
args = parser.parse_args()
print(format_text_block(args.frame_height, args.frame_width, args.filename))
In a hole in the ground there
lived a hobbit. Not a nasty, d
irty, wet hole, filled with th
e ends of worms and an oozy sm
ell, nor yet a dry, bare, sand
ошибка в названии
Если строка не умещается по длине, то ее нужно перенести.
Вся логика форматирования должна быть реализована в функции format_text_block(frame_height, frame_width, file_name), которая возвращает отформатированный текст и в дальнейшем может быть использована в других скриптах.
В случае возникновения ошибок при работе с файлом необходимо вернуть текст исключения, которое выбрасывается в этой ситуации.
мой код :
import argparse
def format_text_block(height, width, text):
try:
s = open(text).readlines()
z, out = [], []
for i in s:
if len(i) == 1 and i.find('\n') != -1:
z.append(i)
else:
z.append(i.replace('\n', ''))
for line in ''.join(z).split('\n'):
for i in range(0, len(line), width):
out.append(line[i:i + width])
else:
out.append('')
return '\n'.join(out[:height])
except Exception as e:
return e
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--frame-height', type=int)
parser.add_argument('--frame-width', type=int)
parser.add_argument('filename', type=str)
args = parser.parse_args()
print(format_text_block(args.frame_height, args.frame_width, args.filename))
Ожидаемый результат
Chapter I: An Unexpected PartyIn a hole in the ground there
lived a hobbit. Not a nasty, d
irty, wet hole, filled with th
e ends of worms and an oozy sm
ell, nor yet a dry, bare, sand
Вывод
ошибка в названии