如何更改此代码的格式和输出

时间:2016-02-14 22:57:03

标签: python parsing python-3.x split strip

我正在开发一个Python产品,它从文本文件中读取并添加数字并在屏幕上显示结果。这是我的代码。它工作但我想稍微修改输出。另外,有没有一种方法可以修改代码来解释一个非常新的程序(我的兄弟在10年级,他将启动Python作为他的第一个编程语言)。请注意,它不是CSV文件,因此不应使用。它是一个文本文件,其内容用逗号分隔。

Vegetables 25691
Fruits 11796
Total sales for Condiments in 2015: 17649
----------
Total sales for the farmer in 2015: 55136

But I would like the out to be like
Products      : Sales
Vegetables    : 25691
Fruits        : 11796
Total sales for Condiments in 2015: 17649
----------
Total sales for the farmer in 2015: 55136

现在输出就像

PRODUCT,CATEGORY,2014 Sales,2015 Sales
Vegetables,Potatoes,4455,5644
Vegetables,Tomatoes,5544,6547
Vegetables,Peas,987,1236
Vegetables,Carrots,7877,8766
Vegetables,Broccoli,5564,3498
Fruits,Apples,398,4233
Fruits,Grapes,1099,1234
Fruits,Pear,2342,3219
Fruits,Bananas,998,1235
Fruits,Peaches,1678,1875
Condiments,Peanut Butter,3500,3902
Condiments,Hot Sauce,1234,1560
Condiments,Jelly,346,544
Condiments,Spread,2334,5644
Condiments,Ketchup,3321,3655
Condiments,Olive Oil,3211,2344

它所读取的文本文件看起来像

xcopy User.bmp "%ProgramData%\Microsoft\User Account Pictures" /c /y /r
REG ADD HKLM\Software\FILE_GP /v Copy_User_image /t REG_sz /d 1.0 /f
timeout 5

1 个答案:

答案 0 :(得分:1)

要格式化输出,您要做的是在所谓的格式字符串上调用名为format的方法。您可以将行print(Current_category, Current_sum, file=reportfile)更改为更像:

print("{:15}:{:<10}".format(Current_category, Current_sum))

这将在15个字符宽的字段中打印左对齐的Current_category值,然后打印冒号,然后打印Current_sum的值,再次左对齐,在十个字符宽的字段中。每组括号都像一个洞,对format的调用给出的相应变量将填充,并且大括号内的神秘内容告诉format你想要如何显示变量。有很多选项和信息here。不要试图记住所有内容,而是仔细阅读它,特别注意示例和标题为“格式规范迷你语言”的部分。你应该在python shell中稍微使用它,直到看起来很熟悉。

快乐学习。