python文件读写笔记和我的第一个网站

一、文件读写的读书笔记

文件包括两种类型:文本文件和二进制文件。

二进制文件直接由比特0和比特1组成,没有统一字符编码,文件内部数据的组织格式与文件用途有关。二进制文件和文本文件最主要的区别在于是否有统一的字符编码
无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,打开后的操作不同。

Python对文本文件和二进制文件采用统一的操作步骤,即“打开-操作-关闭”

a=open(...)   
a.write(s)                #写入内容
a.writelines(lines)    #将一个列表写入文件中
a.seek(offset)          #把当前文件指针指向哪
a.read()                  #读取所有内容
a.readline()             #读一行
a.readlines()            #读取所有文件内容,返回一个list
a.close()

open()函数提供7种基本的打开模式

打开模式 含义
'r' 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖源文件
'x' 创建写模式,文件不存在则创建,存在则返回异常FileExistsError
'a' 追加写模式,文件不存在则创建,存在则在原文件最后追加内容
'b' 二进制文件模式
't' 文本文件模式,默认值
'+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能

根据打开方式不同可以对文件进行相应的读写操作,Python提供4个常用的文件内容读取方法 .

Python提供3个与文件内容写入有关的方法

方法 含义
<file>.write(s) 向文件写入一个字符串或字节流
<file>.writelines(lines) 将一个元素为字符串的列表写入文件
<file>.seek(offset) 改变当前文件操作指针的位置,offset的值:
0:文件开头; 1: 当前位置; 2: 文件结尾

 二、读入Excel文件并存为csv,并把优秀变成90分,良好变成80分,及格变为60分,不合格0分。

把读入的Excel文件存为csv格式

import pandas as pd
wenj = pd.read_excel('Python成绩登记信计.xlsx', index_col=0)
wenj.to_csv('Python成绩登记信计.csv', encoding='utf-8')

把优秀变成90,良好变成80,及格变成60,不合格变成0.

fo=open("Python成绩登记信计.csv",'r',encoding='utf-8')
ls=[]
for line in fo:
    line = line.replace('
','').replace('优秀','90').replace('良好','80').replace('不合格','0')
    line = line.replace('合格','60')
    ls = line.split(',')
    lns=''
    for s in ls:
        lns+="{}	".format(s)
    print(lns)

三、转为 HTML文件

seg1 = '''
<!DOCTYPE HTML>
<html>
<body>
<meta charset=gb2312>
<h2 align=center>Python成绩登记信计</h2>
<table border='1' align="center" width=70%>
<tr bgcolor='orange'>
'''
seg2 = "</tr>
"
seg3 = "</table>
</body>
</html>"
def fill_data(locls):
    seg = '<tr><td align="center">{}</td><td align="center">{}</td><td align="center">{}</td><td align="center">{}</td></tr>
'.format(*locls)
    return seg
fr = open("Python成绩登记信计.csv", "r",encoding='utf-8')
ls = []
for line in fr:
    line = line.replace("
","")
    ls.append(line.split(","))
fr.close()
fw = open("Python成绩登记信计.html", "w")
fw.write(seg1)
fw.write('<th width="25%">{}</th>
<th width="25%">{}</th>
<th width="25%">{}</th>
<th width="25%">{}</th>
'.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()
View Code

四、将 csv 文件用网页表示

原文地址:https://www.cnblogs.com/linjiaxin59/p/12962050.html