zoukankan      html  css  js  c++  java
  • 文件处理及网页制作

    一、文件的操作

    1、打开一个文件

    语法:

    open(filename,mode)

    解释:

    filename:代表你要访问的文件名

    mode:这里代表你打开文件的模式,有 只读,写入,读写,追加等模式;默认为只读模式

    (r表示是文本文件,rb是二进制文件)

    如果文件不存在,这会抛出IOError的错误,并且给出错误码和详细的信息告诉你文件不存在:

    二、文件的操作方法

    三、将excel文件转为csv格式

    要打开的文件最好不要用中文起名,容易读不出来

    # -*- coding: utf-8 -*-
    """
    Created on Thu May 23 13:14:24 2019
    
    @author: yyp
    """
    
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    #df.to_excel('C:UsersAdminDesktopPython_1.xlsx',sheet_name='dfg')
    df=pd.read_excel('D:/Python/aaa.xlsx',index_col=None,na_values=['NA'])
    print(df)
    for i in range(len(df.index)):
       # print(df.iloc[i,1])
        for j in range(1,len(df.columns)):
            if df.iloc[i,j]=='优秀':
                df.iat[i,j]=90
            elif df.iloc[i,j]=='良好':
                df.iat[i,j]=80
            elif df.iloc[i,j]=='合格':
                df.iat[i,j]=60
            else:
                df.iat[i,j]=1
    df.to_csv('D:practise/Python成绩1.csv')
    print(df)
    

     得到的结果如下:

    四、将csv格式转为html格式

    代码如下:

    # -*- coding:utf-8 
    '''
    author:yyp
    function:change csv file into html file
    
    '''
    def fill_data(excel, length=4):
         '''
         函数功能:填充表格的一行数据,返回html格式的字符串text
         excel: 表格中的一行数据
         length: 表格中需要填充的数据个数(即列数),默认为4个
         由于生成csv文件时自动增加了1列数据,因此在format()函数从1开始
         '''
         text = '<tr>'
         for i in range(length):
             tmp = '<td align="center">{}</td>'.format(excel[i+1])
             text += tmp
         text += "</tr>
    "
         return text
     
    def GetCsv(csvFile):
         '''
         函数功能:打开csv文件并获取数据,返回文件数据
         csvFile: csv文件的路径和名称
         '''
         ls = []
         csv = open(csvFile, 'r', encoding="utf-8")
         for line in csv:
             line = line.replace('
    ', '')
             ls.append(line.split(','))
         return ls
     
     
    def CsvToHtml(csvFile, HTMLFILE, thNum):
         '''
           函数功能:将csv格式文件转换为html格式文件
           csvFile:  需要打开和读取数据的csv文件路径
           HTMLFILE: 保存的html文件路径
           thNum:    csv文件的列数,需注意其中是否包括csv文件第1列无意义的数据,
           此处包含因此在调用时需要增加1
           '''
         # HTML1 HTML2 分别为html文件的首部和尾部
         HTML1 = '''  
       <!DOCTYPE HTML>
    <html>
    <body>
    <meta charset=gbk2313>
       <h1 align=center>Python成绩表</h2>
       <table border='blue'>
    '''
         HTML2 = "</table>
    </body>
    </html>"
         
         csv_list = GetCsv(csvFile)      # 获得csv文件数据
         hF = open(HTMLFILE, 'w') # 创建html文件
         hF.write(HTML1)                                             # 写入html文件首部
         for i in range(1, thNum+1):        # 写入表格的表头(即第1行)
             hF.write('<th width="20%">{}</th>
    '.format(csv_list[0][i]))
         hF.write("</tr>
    ")
         for i in range(1, len(csv_list)):  # 写入表格的数据,从第2行开始为数据
            hF.write(fill_data(csv_list[i], 5))
         hF.write(HTML2)                                            # 写入html文件尾部
         hF.close()               # 关闭html文件
     
    CsvToHtml("D:/python/Python成绩1.csv", "D:/python/Python成绩11.html", 5)
    

      结果如下:

    五、将csv文件转换成json格式

    import json
    fr=open("D:/python/Python成绩1.csv","r")
    ls=[]
    for line in fr:
        line=line.replace("
    ","")
        ls.append(line.spilt(','))
    fr.close
    fw=open("D:/python/Python成绩2.json","w")
    for i in range(1,len(ls)):
        ls[i]=dict(zip(ls[0]),ls[i])
    json.dump(ls[1:],fw,sort_keys=True,indent=4,ensure_ascii=False)
    fw.close
    

      

  • 相关阅读:
    调用API接口,查询手机号码归属地(2)
    调用API接口,查询手机号码归属地(1)
    F
    Icebound and Sequence(非互质逆元 快速乘法)or(矩阵快速幂)
    ProblemC、小花梨判连通(dfs)+想法stl
    cwb个人练习
    Fire Net (二分图匹配 匈牙利算法模板)
    Fire Net HDU
    Going Home POJ
    Two Sequences (二分+二进制) (好题)
  • 原文地址:https://www.cnblogs.com/yyp-20190107/p/10911483.html
Copyright © 2011-2022 走看看