Python: как вставить вкладку и отформатировать текстовый файл

Внесение текстового файла, отформатированного, как показано ниже:

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

но у меня проблемы с форматированием. Какие-либо предложения?

Я думаю, что для этой задачи были бы полезны методы str split или partition. После того, как вы разделите каждую строку, вы можете использовать команду форматирования в верхней части вашего вопроса.

PM 2Ring 27.04.2018 18:08
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
297
1

Ответы 1

Вы можете сделать что-то вроде этого:

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}.

Другие вопросы по теме