一、文件的使用--读书笔记
文件打开关闭的代码
<变量名> = open(<文件名>,<打开模式>)
打开模式有以下7个
打开模式 | 含义 |
'r' | 只读模式,文件不存在,返回异常FileNotFoundError |
'w' | 覆盖模式,文件不存在则创建,存在则完全覆盖 |
'x' | 创建写模式,文件不存在则创建,存在则返回异常FileNotFoundError |
'a' | 追加写模式,文件不存在则创建,存在怎在文件最后追加内容 |
'b' | 二进制文本模式 |
't' | 文本文件模式,默认值 |
'+' | 与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |
文件的读取
操作方法 | 含义 |
<file>.read(size) | 从文件中读入整个文件内容,如果给出参数,读入前size长度的字节串或字节流 |
<file>.readline(size) | 从文件中读入一行内容,如果给出参数,读入前size长度的字节串或字节流 |
<file>.readlines(size) | 从文件中读入所有行,如果给出参数,读入前size长度的字节串或字节流 |
文件的写入
方法 | 含义 |
<file>.write(s) | 向文件写入一个字符串或者字节流 |
<file>.writelines(lines) | 将一个元素全为字符串的列表写入文件 |
<file>.seek(offest) | 改变当前文件操作指针位置,offset的值:0--文件开头;1--当前位置;2--文件开头 |
二、xlsx转csv,csv转html保存
代码如下
代码在第18行之前为将xlsx文件格式转化为csv,在第18行之后是将csv文件格式转化为html并保存下来
1 # -*- coding: utf-8 -*- 2 """ 3 Spyder Editor 4 5 This is a temporary script file. 6 """ 7 8 import pandas as pd 9 df = pd.read_excel('D:\\test\Python成绩.xlsx') 10 da = df.to_csv('D:\\test\Python成绩.csv') 11 da = pd.read_csv('D:\\test\Python成绩.csv',index_col=0) 12 da = da.replace('优秀','90') 13 da = da.replace('良好','80') 14 da = da.replace('合格','60') 15 da = da.replace('不合格','10') 16 da = da.fillna(0) 17 print(da) 18 dc = da.to_csv('D:\\test\Python成绩.csv') 19 seg1 = ''' 20 <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=utf-8> 21 <h1 align=center>Python成绩登记信计</h1> 22 <table border='1' align="center" width=100%> 23 <tr bgcolor='yellow'>\n''' 24 seg2="</tr>\n" 25 seg3="</table>\n</body>\n</html>" 26 def fill_data(locls): 27 seg = '<tr><td align="center">{}</td><td align="center">\ 28 {}</td><td align="center">{}</td><td align="center">\ 29 {}</td ><td align="center">{}</td></tr><td align="center">{}</td></tr>\n'.format(*locls) 30 return seg 31 fr = open("D:\\test\Python成绩.csv","r",encoding='utf-8') 32 ls = [] 33 for line in fr: 34 line = line.replace("\n","") 35 ls.append(line.split(",")) 36 print(ls) 37 fr.close() 38 fw = open("D:\\test\Python成绩.html","w",encoding='utf-8') 39 fw.write(seg1) 40 fw.write('<th width="25%">{}</th>\n<th width="25%">{}</th>\n<th width="25%">{}</th>\n<th width="25%">{}</th>\n<th width="25%">{}</th>\n<th width="25%">{}</th>\n'.format(*ls[0])) 41 fw.write(seg2) 42 for i in range(len(ls)-1): 43 fw.write(fill_data(ls[i+1])) 44 fw.write(seg3) 45 fw.close
输入代码界面如下(PS:用的是spyder)
按F5 运行代码,右下角无错误,并在指定文件位置创建了一个html文件
打开html便看到我们从xlsx格式文件中的数据
(PS:就是有点丑(笑声bb))