python实现csv转换为html

import sys

def main():
    maxwidth = 100
    print_start()
    count = 0
    while True:
        try:
            line = input()
            if count == 0:
                color = "lightgreen"
            elif count % 2:
                color = "white"
            else:
                color = "lightyellow"
            print_line(line, color, maxwidth)
            count += 1
        except EOFError:
            break
    print_end()

def print_start():
    print("<table border='1'>")
    
def print_end():
    print("</table>")
    
def print_line(line, color,maxwidth):
    print("<tr bgcolor='{}'>".format(color))
    fields = extract_fields(line)
    for field in fields:
        if not field:
            print("<td></td>")
        else:
            number = field.replace(",", " ")
            try:
                x = float(number)
                print("<td align='right'>{0:d}</td>".format(round(x)))
            except ValueError:
                field = field.title()
                field = field.replace("And", "and")
                if len(field) <= maxwidth:
                    field = escape_html(field)
                else:
                    field = "{0}...".format(escape_html(field[:maxwidth]))
                print("<td>{0}</td>".format(field))
    print("</tr>")
    
    
def extract_fields(line):
    fields = []
    field = ""
    quote = None
    for c in line:
        if c in "\"":
            if quote is None:
                quote = c
            elif quote == c:
                quote = None
            else:
                field += c
                continue
        if quote is None and c == ",":
            fields.append(field)
            field = ""
        else:
            field  += c
    if field:
        fields.append(field)
    return fields
        
def escape_html(text):
    text = text.replace("&", "&amp;")
    text = text.replace("<", "&lt;")
    text = text.replace(">", "&gt;")
    return text
    
main()

实现的命令行:G:\Python32>.\py3eg\csv2html.py < .\py3eg\data\csv2htmldata.csv > .\py3eg\data\csv2htmldata.html

我的python安装目录是在G:\Python32

 

 

 

 

 

转载于:https://my.oschina.net/zhangdapeng89/blog/38275

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值