0

使用下面的示例 CSV 数据,我试图找到一种方法以格式良好、清晰的方式在线发布他们的测试分数......

CSV 数据示例

School,Class,Data,Student,Data,Data,testscore
West,1B,Data,StudentA,Data,Data,55.42452912
West,1B,Data,StudentB,Data,Data,32.22219
West,2A,Data,StudentC,Data,Data,49.242
West,2A,Data,StudentD,Data,Data,23.42452912
East(LMK),2,Data,StudentE,Data,Data,13.42452912
North,B,Data,StudentF,Data,Data,15.42452912
North,B,Data,StudentG,Data,Data,93.42

例如,根据上述数据,我想发布:

---------------------------------
West      | 1B | StudentA | 55.42
West      | 1B | StudentB | 32.22
---------------------------------
West      | 2A | StudentC | 9.24
West      | 2A | StudentD | 23.42
---------------------------------
East(LMK) | 2  | StudentE | 13.42
---------------------------------
North     | B  | StudentF | 15.42
North     | B  | StudentG | 93.42
---------------------------------

有什么方法可以让我把它放到一个简单的 html、php、css 等中,以便在网站上阅读吗?

基本上,它采用他们的学校、班级、学生姓名和测试分数(到 2DP)并将其格式化在表格中,根据他们的学校 + 班级作为唯一标识符拆分为多个部分。

有谁知道如何最好地实现这一点,我意识到这可能是一个相当复杂的脚本。

显然,创建文件后,我将使用 ftp lib 将其发送到网络服务器

谢谢
-Hyflex

4

1 回答 1

6

我今天感觉很好,所以我给你写了一个应该有用的片段。我没有打扰插入水平线,但如果它对您很重要,您可能可以自己实现。

import csv

def get_html_table(data):
    s = '<table>\n'
    for row in data:
        s += '<tr>'
        for cell in row:
            s += r'<td>{}</td>'.format(cell)
        s += '</tr>\n'
    s += '</table>'
    return s

with open('testscore.txt') as ifile, open('output.html', 'wb') as ofile:
    data = []
    for row in list(csv.reader(ifile))[1:]:
        data.append([row[0], row[1], row[3], '{0:0.2f}'.format(float(row[6]))])
    ofile.write(get_html_table(data))

测试分数.txt:

School,Class,Data,Student,Data,Data,testscore
West,1B,Data,StudentA,Data,Data,55.42452912
West,1B,Data,StudentB,Data,Data,32.22219
West,2A,Data,StudentC,Data,Data,49.242
West,2A,Data,StudentD,Data,Data,23.42452912
East(LMK),2,Data,StudentE,Data,Data,13.42452912
North,B,Data,StudentF,Data,Data,15.42452912
North,B,Data,StudentG,Data,Data,93.42

输出.html:

<table>
<tr><td>West</td><td>1B</td><td>StudentA</td><td>55.42</td></tr>
<tr><td>West</td><td>1B</td><td>StudentB</td><td>32.22</td></tr>
<tr><td>West</td><td>2A</td><td>StudentC</td><td>49.24</td></tr>
<tr><td>West</td><td>2A</td><td>StudentD</td><td>23.42</td></tr>
<tr><td>East(LMK)</td><td>2</td><td>StudentE</td><td>13.42</td></tr>
<tr><td>North</td><td>B</td><td>StudentF</td><td>15.42</td></tr>
<tr><td>North</td><td>B</td><td>StudentG</td><td>93.42</td></tr>
</table>

通常,您应该使用csv 模块来读取您的数据,并使用类似genshi(查看genshi.builder)来生成您的 html。

于 2013-10-30T00:40:29.850 回答