一、文件读写
R |
以只读方式打开 |
|
rU或U |
以读方式打开,同时提供通用换行符支持 |
|
w |
以写方式打开,如果文件已经存在,会覆盖掉原来的数据 |
|
a |
以追加模式打开,在文件后面追加数据,不能读 |
|
r+ |
以读写模式打开 |
|
w+ |
以读写模式打开,参见w |
|
a+ |
以读写追加模式打开,参见a |
|
rb |
以二进制读模式打开 |
|
wb |
以二进制写模式打开 |
|
ab |
以二进制追加模式打开 |
|
rb+ |
以二进制读写模式打开 |
|
wb+ |
以二进制读写模式打开 |
|
ab+ |
以二进制读写追加模式打开 |
|
二、读取文件中的数据
* 使用read方法一次性读取所有的数据使用,包括换行符
* 使用readline方法每次只读取一行数据,包括换行符
* 使用readlines方法一次性读取完所有数据,包括换行符,并以列表的形式返回,列表中的每个元素就是原文件的一行
* 使用for循环迭代读取
* 使用列表推导式来将文件的每一行都读取到列表中去
三、xlsx文件转换为cvs文件
(一)Pandas简介
1、Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
2、Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
3、数据结构:
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文件
如下图所示效果
四、更改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#关闭并保存文件
效果如下
大功告成,注意charset=utf-8是指html文件的编码语言,一定要好好核对,文件打开的编码一定要适合该文件或编程语言,不然就会出错。