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