zoukankan      html  css  js  c++  java
  • CSV to HTML Table with Python

    Project Overview:

    This purpose of this project is to write the contents of a csv file to an html file in the form of a table. The first row of the csv file is assumed to be a header row. The table will have predefined css styles applied to it. The styles will customize the header as well as alternate the color of each row.

    Description of Code:

    Starting on line 9, this if statement tests the number of arguments and and terminates the application with an exit status of 1 if the number of arguments are less than 3. Line 14 makes use of the csv modules reader object and loads the contents of the specified csv file into a variable “reader”. Line 17, creates an html file with the name specified in the second argument and opens it for writing. Line 23 simply writes the opening html table tag. Line 25 enters a for loop where each row of the csv file is read and written to the html file appropriately. Lines 26 though 30 write the header row. Lines 32 through 36 apply the css classes color1 and color2 to alternating rows. This allows the external css to alternate colors to make the each row of the table more readable to the end user.Lines 38 through 41 write the columns in the table. Additionally, they write the number of the columns position in the table. This allows external css to apply unique styling to each column. Line 46 ends the html table tag and Line 47 terminates the script with an exit status of 0.

    The Code:

    #!/usr/bin/python
    # create html table from csv
    # Author(s): Chris Trombley <ctroms@gmail.com>
    # Version 2 - added css class to all columns except header
    
    import sys
    import csv
    
    if len(sys.argv) < 3:
        print "Usage: csvToTable.py csv_file html_file"
        exit(1)
    
    # Open the CSV file for reading
    reader = csv.reader(open(sys.argv[1]))
    
    # Create the HTML file for output
    htmlfile = open(sys.argv[2],"w")
    
    # initialize rownum variable
    rownum = 0
    
    # write <table> tag
    htmlfile.write('<table>')
    
    for row in reader: # Read a single row from the CSV file
        if rownum == 0:
            htmlfile.write('<tr>') # write <tr> tag
              for column in row:
                  htmlfile.write('<th>' + column + '</th>') # write header columns
              htmlfile.write('</tr>') # write </tr> tag
          else: # write all other rows
              colnum = 1
              if rownum % 2 == 0:
                  htmlfile.write('<tr class="color1">')
              else:
                  htmlfile.write('<tr class="color2">')
    
              for column in row:
                  htmlfile.write('<td class="column_' + str(colnum) + '">' + column + '</td>')
                  colnum += 1
              htmlfile.write('</tr>')
    
        rownum += 1
    
    # write </table> tag
    htmlfile.write('</table>')
    exit(0)

    Python Programming Language – Official Website

    Python Documentation – CSV File Reading and Writing

  • 相关阅读:
    centos7安装Nginx
    activiti数据库表结构剖析
    Consider defining a bean named 'entityManagerFactory' in your configuration解决办法
    mongodb远程数据库的连接以及备份导入导出数据
    在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客
    node.js搭建Web服务器
    Spring Boot 引入org.springframework.boot.SpringApplication出错
    CentOS7搭建SVN服务器
    Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法
    Linux内核协议栈 NAT性能优化之FAST NAT
  • 原文地址:https://www.cnblogs.com/xjsllll/p/3006291.html
Copyright © 2011-2022 走看看