从csv文件读取并打印为有组织的表

时间:2017-11-29 14:48:11

标签: python-3.x

Picture stating what needs to be done

Picture showing what format it needs to be done

我有一个关于从csv文件中读取并将其打印为有组织的表的任务。

到目前为止,我已经实现了以下代码,它将代码打印在字符串fomat中,该代码也将在下面显示。

import csv

table = ''
with open('geek-music.csv', 'r') as csvFile:
    reader = csv.DictReader(csvFile, delimiter=',')
    table = '<tr>{}</tr>'.format(''.join(['<td>{}</td>'.format(header) for header in reader.fieldnames]))
    for row in reader:
        table_row = '<tr>'
        for fn in reader.fieldnames:
            table_row += '<td>{}<\td>'.format(row[fn])
        table_row += '<\tr>'
        table += table_row

使用此代码时,我收到以下内容:

[['Track', 'Artist', 'Album', 'Time'], ['Computer Love', 'Kraftwerk', 'Computer World', '7:15'], ['Paranoid Android', 'Radiohead', 'OK Computer', '6:27'], ['Computer Age', 'Neil Young', 'Trans', '5:24'], ['Digital', 'Joy Division', 'Still', '2:50'], ['Silver Machine', 'Hawkwind', 'Roadhawks', '4:39'], ['Start the Simulator', 'A-Ha', 'Foot of the Mountain', '5:11'], ['Internet Connection', 'M.I.A.', 'MAYA', '2:56'], ['Deep Blue', 'Arcade Fire', 'The Suburbs', '4:29'], ['I Will Derive!', 'MindofMatthew', 'You Tube', '3:17'], ['Lobachevsky', 'Tom Lehrer', 'You Tube', '3:04']]

在进一步编辑我的代码后,我得到了以下结果:

import csv


f = open("geek-music.csv",'r')

for aline in f:
    values = aline.split(',')
#    print(values[0])
    Track = [values[0]]
    Artist = [values[1]]
    Album = [values[2]]
    Time = [values[3]]

    data = list(zip(Track, Artist, Album, Time))
    for i, d in enumerate(data):
            line = '|'.join(str(x).ljust(12) for x in d)
            print(line)
            if i == 0:
                print('-' * len(line))

f.close()

然而,这导致以下结果:

Track       |Artist      |Album       |Time

---------------------------------------------------
Computer Love|Kraftwerk   |Computer World|7:15

------------------------------------------------------
Paranoid Android|Radiohead   |OK Computer |6:27

-------------------------------------------------------
Computer Age|Neil Young  |Trans       |5:24

---------------------------------------------------
Digital     |Joy Division|Still       |2:50

---------------------------------------------------
Silver Machine|Hawkwind    |Roadhawks   |4:39

-----------------------------------------------------
Start the Simulator|A-Ha        |Foot of the Mountain|5:11

------------------------------------------------------------------
Internet Connection|M.I.A.      |MAYA        |2:56

----------------------------------------------------------
Deep Blue   |Arcade Fire |The Suburbs |4:29

---------------------------------------------------
I Will Derive!|MindofMatthew|You Tube    |3:17

------------------------------------------------------
Lobachevsky |Tom Lehrer  |You Tube    |3:04

---------------------------------------------------

这与我正在寻找的非常接近,只是它与上图所示的相差甚远。

0 个答案:

没有答案