如何将 csv 文件的结果格式化为看起来更像 table

How to format result from csv file to look more like a table

如何将输出格式化为类似于以下设计的 table,同时省去不必要的列?我正在处理 def 2,它会返回我想要的原始数据,但我不知道如何将其格式化为类似于它下面的 table。

['1000.3', '', '']
['Coke Can', '1.1', '100']
['Bread', '0.7', '30']
['Spaghetti', '1.2', '100']
['Tomato Sauce', '0.8', '100']
['Bin Bags', '2.5', '4']
Enter anything to return to main menu


-----------------------------
Shop has 1000.30 in cash
-----------------------------
| Product             |  Qty |
-----------------------------
| Coke Can            | 00100|
|----------------------------|
| Bread               | 00030|
|----------------------------|
| Spaghetti           | 00100|
|----------------------------|
| Tomato Sauce        | 00100|
|----------------------------|
| Bin Bags            | 00004|
|----------------------------|


 

def two():
    with open('../stock.csv') as csvfile:
        readCSV = csv.reader(csvfile, delimiter=',')
        first_row = next(readCSV)
        print(first_row)
        for row in readCSV:
            print(row)
    anykey=input("Enter anything to return to main menu")
    mainMenu()   

#main routine
mainMenu()

只需稍微尝试一下 print 语句,您应该能够轻松实现这一目标。

import csv
fields = [] 
filename = "stock.csv"
with open(filename, 'r') as csvfile:
    csvreader = csv.reader(csvfile) 
    fields = next(csvreader)
    print('-'*40)
    print(f'Shop has {fields[0]} in cash')
    print('-'*40)
    for row in csvreader:
        print('-'*40)
        print('| ', row[0], ' '*(24-len(row[0])),'| ', row[2],' '*2, '|')
        print('-'*40)