文件的使用包括:打开,读取,输出html
打开模式app |
说明spa |
r指针 |
只读模式 (默认),文件不存在则返回FileNotFoundError异常excel |
wcode |
覆盖写模式,文件不存在则建立,存在则覆盖写orm |
xhtm |
建立写模式,文件不存在则建立,存在则返回FileExistsError异常blog |
autf-8 |
追加写模式,文件不存在则建立,存在则追加写 |
t |
文本文件模式 (默认) |
b |
二进制文件模式 |
+ |
在原功能基础上增长读写功能 |
读文件方法 |
说明 |
<file>.read(size=-1) |
从文件中读入全部内容,如有参数,则读入前size长度的字符串或字节流 |
<file>.readline(size=-1) |
从文件中读入一行内容,如有参数,则读入改行前size长度的字符串或字节流 |
<file>.readlines(hint=-1) |
从文件中读入全部行,以每行为元素造成列表,如有参数,则读入hint行 |
写文件方法 |
说明 |
<file>.write(s) |
向文件中写入一个字符串或字节流 |
<file>.writelines(lines) |
将一个全为字符串的列表写入文件 |
<file>.seek(offset) |
改变当前文件操做指针的位置(offset值) |
关闭文件
2.将excel转化为csv格式
import pandas as pd df = pd.read_excel('Python成绩登记信计.xlsx')#读写文件 da = df.to_csv('E:\Anaconda之做业\Python成绩登记信计.csv')#更改xlsx文件为csv文件 da = pd.read_csv('E:\Anaconda之做业\Python成绩登记信计.csv',index_col=0)#读取文件 da = da.replace('优秀','90') #替换数据 da = da.replace('良好','80') da = da.replace('合格','60') da = da.replace('不合格','10') da = da.fillna(0) print(da) dc = da.to_csv('E:\Anaconda之做业\Python成绩登记信计.csv')#保存csv文件
3.将csv改成html格式
seg1 = ''' <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=utf-8> <h1 align=center>Python成绩登记信计</h1> <table border='1' align="center" width=100%> <tr bgcolor='yellow'>\n''' #建立一个HTML文件表格,包括标题,宽度 seg2="</tr>\n" seg3="</table>\n</body>\n</html>" def fill_data(locls):#建立表格内容 seg = '<tr><td align="center">{}</td><td align="center">\ {}</td><td align="center">{}</td><td align="center">\ {}</td ><td align="center">{}</td></tr><td align="center">{}</td></tr>\n'.format(*locls) return seg fr = open("E:\Anaconda之做业\Python成绩登记信计.csv","r",encoding='utf-8')#打开文件 ls = [] for line in fr:#将文件内容导入表格 line = line.replace("\n","") ls.append(line.split(","))#去除逗号分隔符 print(ls) fr.close()#关闭文件 fw = open("E:\Anaconda之做业\Python成绩登记信计.html","w",encoding='utf-8')#操做HTML文件 fw.write(seg1) fw.write('<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n'.format(*ls[0]))#写入文件中的数据到表格中 fw.write(seg2)#写入数据 for i in range(len(ls)-1):#进行循环,写入数据 fw.write(fill_data(ls[i+1])) fw.write(seg3) fw.close#关闭并保存文件
效果如图