一、文件的操作
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