Внесение текстового файла, отформатированного, как показано ниже:
hammer#9.95
saw#20.15
shovel#35.40
Мне нужно перенести его в Python и отформатировать так, чтобы он соответствовал существующему фрагменту кода:
# display header line for items list
print('{0: <10}'.format('Item'), '{0: >17}'.format('Cost'), sep = '' )
Цель состоит в том, чтобы текстовый файл соответствовал существующим заголовкам, например:
Item Cost
hammer $9.95
saw $20.15
shovel $35.4
Я могу ввести текстовый файл в Python и заменить знак # на знак $:
file = open('Invoice.txt', 'r')
file_contents = file.read()
new_file_contents = file_contents.replace('#', '$')
Что дает мне такой результат:
hammer$9.95
saw$20.15
shovel$35.40
но у меня проблемы с форматированием. Какие-либо предложения?






Вы можете сделать что-то вроде этого:
with open(file,'rt',encoding='utf-8') as infile:
for line in infile:
print("{:<6} {}".format(line.strip().split('#')[0],"$"+line.strip().split("#")[1]))
Единственная проблема в том, что это будет выглядеть некрасиво, если у вас будет слово длиннее, чем молоток. Я предлагаю сначала найти самое большое слово в вашем списке, а затем использовать его как ограничитель для {: <6}.
Я думаю, что для этой задачи были бы полезны методы str split или partition. После того, как вы разделите каждую строку, вы можете использовать команду форматирования в верхней части вашего вопроса.