1.文件读写的读书笔记
文件的打开关闭
a.read(size) 读入前size长度
a.readline(size) 读入该行前size长度
a.readlines(hint) 读入前hint行
打开:<变量名>=open(<文件名>,<打开模式>)
打开模式 |
含义 |
'r' |
只读模式,如果文件不存在,返回异常FileNotFoundError,默认值 |
'w' |
覆盖写模式,文件不存在则创建,存在则完全覆盖源文件 |
'x' |
创建写模式,文件不存在则创建,存在则返回异常FileExistsError |
'a' |
追加写模式,文件不存在则创建,存在则在原文件最后追加内容 |
'b' |
二进制文件模式 |
't' |
文本文件模式,默认值 |
'+' |
与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |
数据的文件写入
a.write(s) | 向文件写入一个字符串或字节流 |
a.writelines(lines) | 将元素全为字符串的列表写入文件 |
a.seek(offset) |
改变当前文件操作指针的位置。offset含义如下: 0-文件开头,1-当前位置,2-文件结尾 |
2.读入Excel文件,并存为csv格式,并把优秀变为90分,良好80分,及格60,没有交0分。
(1)excel格式转为csv格式:
import pandas as pd text=pd.read_excel('Python成绩登记信计.xlsx', index_col=0) text.to_csv('Python成绩登记信计.csv', encoding='utf-8')
(2)把优秀变为90分,良好80分,及格60分,没有交0分:
fo = open("Python成绩登记信计.csv", "r",encoding="utf-8") ls = [] for line in fo: line = line.replace("优秀","90") line = line.replace("良好","80") line = line.replace("不合格","0") line = line.replace("合格","60") line = line.replace("\n","") ls.append(line.split(",")) lns = "" for s in ls: lns += "{}\t".format(s) print(lns) fo.close()
4.把上述csv格式文件转换为html文件。
seg1 = ''' <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=gb2312> <h2 align=center>Python成绩登记信计</h2> <table border='1' align="center" width=70%> <tr bgcolor='orange'>\n ''' 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><tdalign="center">\ {}</td></tr>\n'.format(*locls) return seg fr = open("Python成绩登记信计.csv", "r",encoding="utf-8") ls = [] for line in fr: line = line.replace("\n","") ls.append(line.split(",")) fr.close() fw = open("Python成绩登记信计.html", "w") fw.write(seg1) fw.write('<th width="25%">{}</th>\n<th width="25%">{}</th>\n<th width="25%">{}</th>\n<th width="25%">{}</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()