用Python将CSV中的一列转换为HTML页面中的段落

0 投票
1 回答
557 浏览
提问于 2025-04-17 14:01

我有一段代码,可以把CSV文件直接转换成HTML格式,这样在网页上看起来就像一个表格。不过,我想把第一列的内容提取出来,然后把这一列的内容放进一个div里,让它看起来像普通的段落。比如说,如果数据是:

1 5
2 6
3 7
4 8

那么这个div的内容应该是横着排列的:

1 2 3 4

5 6 7 8

这样的话,其实就是某种转置矩阵的效果……

这个文档最终会有大约100行和4列。我希望能把每一列提取出来,然后一个接一个地变成段落。

这是我用来把CSV转换成HTML表格的代码:

import sys
import csv

if len(sys.argv) < 3:
    print "Usage: csvToTable.py csv_file html_file"
    exit(1)

reader = csv.reader(open(sys.argv[1]))


htmlfile = open(sys.argv[2],"w")


colnum = 0


htmlfile.write('<div style="margin-left:220px;">')

for column in reader: 
    if colnum == 0:
        htmlfile.write('<p>') 
        for row in column:
            htmlfile.write ( row ) 
        htmlfile.write('</p>') 
    else:      
        rownum = 1
        if colnum % 2 == 0:
            htmlfile.write('<p class="color1">')
        else:
            htmlfile.write('<p class="color2">')


htmlfile.write('</div>')
exit(0)

而这是我重新格式化的代码,希望能把内容变成段落:

htmlfile.write('<div style=" position: absolute; margin-

left:520px; top:100px;">')

for column in reader: 
    if colnum == 0:
        htmlfile.write('<p>') 
        for row in column:
            htmlfile.write ( row ) 
        htmlfile.write('</p>') 

htmlfile.write('</div>')
exit(0)

但当然,这并没有成功!!我才学了Python大约3天,所以即使看了很多书和网站,我还是不知道该怎么做。

1 个回答

0

你可以使用 csv.reader 函数把CSV文件读取成一个元组的列表。然后,你可以用 zip函数来转置 数据。等到行和列互换之后,你就可以遍历这些新的行,把它们连接起来形成一个段落,每一行作为一个div。

撰写回答