Python 3.9 - 如何打印和格式化.txt 文件?

Python 3.9 - How to print and format a .txt file?

我如何定义一个函数,以便在不更改文件内容的情况下以特定方式打印文本文件?或者更有效的方法是什么?

文本文件:

menu.txt
Cheese Burger, 5.00
Chicken Burger, 4.50
Fries, 2.00
Onion Rings, 2.50
Drinks, 1.50

期望的输出:

1.  Cheese Burger           5.00
2.  Chicken Burger          4.50        
3.  Fries                   2.00
4.  Onion Rings             2.50
5.  Drinks                  1.50

您可以使用 enumerate 获取从 1 开始的序列号。

要按照您提到的方式打印输出,您需要使用 String formatting - Docs

我使用了 {item:25} - 这将使项目的宽度为 25。您可以输入任何您想要的数字 space。

来自文档:

Passing an integer after the ':' will cause that field to be a minimum number of characters wide. This is useful for making columns line up.

with open('menu.txt', 'r') as f:
    lines = f.readlines()
    for i,v in enumerate(lines,1):
        item, price = v.strip('\n').split(',')
        print(f'{i}. {item:25}{price}')
Output

1. Cheese Burger             5.00
2. Chicken Burger            4.50
3. Fries                     2.00
4. Onion Rings               2.50
5. Drinks                    1.50

您应该以读取 ("r") 模式打开文件以在不更改的情况下使用它。 ./Menu.txt 表示文件和 .py 文件在同一个文件夹中。您可以写出准确的路径而不是“./Menu.txt”。

file = open("./Menu.txt", "r")

lines = file.readlines()
file.close()
num_of_line = 1

for line in lines:
    res = line.split(", ")
    print(num_of_line, end=". ")
    print(f"{res[0] : <20}{res[1] : ^5}")
    num_of_line += 1