当前时间

文件处理及网页制作

一、文件的操作

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:\Users\Admin\Desktop\Python_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>\n"
     return text
 
def GetCsv(csvFile):
     '''
     函数功能:打开csv文件并获取数据,返回文件数据
     csvFile: csv文件的路径和名称
     '''
     ls = []
     csv = open(csvFile, 'r', encoding="utf-8")
     for line in csv:
         line = line.replace('\n', '')
         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>\n<html>\n<body>\n<meta charset=gbk2313>
   <h1 align=center>Python成绩表</h2>
   <table border='blue'>\n'''
     HTML2 = "</table>\n</body>\n</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>\n'.format(csv_list[0][i]))
     hF.write("</tr>\n")
     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("\n","")
    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

  

 

posted on 2019-05-23 13:57  Y杨宇平  阅读(222)  评论(0编辑  收藏  举报