一、关于文件读写的笔记
文件的使用分为3步:打开文件、读写文件、关闭文件。
1. 打开文件
变量名 = open (文件名, 打开模式)
打开模式 | 说明 |
r | 只读模式 (默认),文件不存在则返回FileNotFoundError异常 |
w | 覆盖写模式,文件不存在则创建,存在则覆盖写 |
x | 创建写模式,文件不存在则创建,存在则返回FileExistsError异常 |
a | 追加写模式,文件不存在则创建,存在则追加写 |
t | 文本文件模式 (默认) |
b | 二进制文件模式 |
+ | 在原功能基础上增加读写功能 |
2. 读文件
读文件方法 | 说明 |
<file>.read(size=-1) | 从文件中读入所有内容,若有参数,则读入前size长度的字符串或字节流 |
<file>.readline(size=-1) | 从文件中读入一行内容,若有参数,则读入改行前size长度的字符串或字节流 |
<file>.readlines(hint=-1) | 从文件中读入所有行,以每行为元素形成列表,若有参数,则读入hint行 |
3. 写文件
写文件方法 | 说明 |
<file>.write(s) | 向文件中写入一个字符串或字节流 |
<file>.writelines(lines) | 将一个全为字符串的列表写入文件 |
<file>.seek(offset) | 改变当前文件操作指针的位置(offset值) 0:文件开头;1:当前位置;2:文件结尾 |
4. 关闭文件
变量名.close()
(三) 使用实例
>>> f = open("D:\\joke.txt", 'r') # 打开文件,只读模式>>> for line in f.readlines(): # 输出文件内容 print(line) 交警站在红绿灯路口把一辆小汽车拦住。交警说:“你还不停车,车轮压线了。”司机说:“这是我的压轴好戏。”交警说:“我看你没有拿出刹手锏。”司机说:“我把握得好,没有把线压坏吧?”交警说:“这是一根高压线,不容你触及。”司机说:“没关系,我的车轮是绝缘体。”>>> f.close() # 关闭文件>>> fp = open("D:\\joke.txt", 'w+') # 打开文件,读写模式>>> text = "我买了王羲之的亲笔写的大字:同一个世界同一个梦想。">>> fp.write(text) # 将字符串text写入文件25>>> fp.seek(0) # 将文件指针移至文件开头0>>> fp.read() # 读入文件所有内容'我买了王羲之的亲笔写的大字:同一个世界同一个梦想。'>>> f.close() # 关闭文件
二、将excel文件存为csv文件
CSV格式(Comma-Separated Values,逗号分隔值)是一种通用的,相对简单的文件格式,可应用在程序之间转移表格数据。由此看来,csv格式文件的应用还是很广大的。
所以,看看怎么转化吧 ~~~
此处的转换方式为: 优秀 --> 90,良好 --> 80, (不)合格 --> 60,NaN --> 0
1 # -*- coding:utf-8 2 ''' 3 This is a programe that can change excel into csv. 4 5 ''' 6 import pandas as pd 7 8 def ExcelToCsv_1(StartName, SheetName, EndName): 9 '''10 函数功能: 将excel格式文件转换为csv格式文件,使用iat方法11 StartName: excel表格的文件路径12 SheetNmae: excel表格中的表格名称13 EndName: csv文件的保存路径14 '''15 grade = pd.read_excel(StartName, sheet_name=SheetName)16 for i in range(len(grade.index)):17 for j in range(1, len(grade.columns)):18 if grade.iloc[i, j] == '优秀':19 grade.iat[i, j] = 9020 elif grade.iloc[i, j] == '良好':21 grade.iat[i, j] = 8022 elif grade.iloc[i, j] == '合格':23 grade.iat[i, j] = 6024 else:25 grade.iat[i, j] = 026 grade.to_csv(EndName)27 28 29 def ExcelToCsv_2(StartName, SheetName, EndName):30 '''31 函数功能: 将excel格式文件转换为csv格式文件,使用replace方法32 StartName: excel表格的文件路径33 SheetNmae: excel表格中的表格名称34 EndName: csv文件的保存路径35 '''36 grade = pd.read_excel(StartName, sheet_name=SheetName)37 Grade = grade.replace("优秀", "90")38 Grade = Grade.replace("良好", "80")39 Grade = Grade.replace("不合格", "60")40 Grade = Grade.replace("合格", "60")41 Grade = Grade.fillna(value = 0)42 Grade.to_csv(EndName)43 44 ExcelToCsv_2("D:\\Python_1.xlsx", "Sheet1", "D:\\Python_1.csv")45 ExcelToCsv_1("D:\\Python_2.xlsx", "Sheet1", "D:\\Python_2.csv")
转化效果:
三、将csv文件存为html文件
1 # -*- coding:utf-8 2 ''' 3 This is a programe that can change csv into html. 4 @author:步平凡 5 ''' 6 7 def fill_data(excel, length=4): 8 ''' 9 函数功能:填充表格的一行数据,返回html格式的字符串text10 excel: 表格中的一行数据11 length: 表格中需要填充的数据个数(即列数),默认为4个12 由于生成csv文件时自动增加了1列数据,因此在format()函数从1开始13 '''14 text = ''15 for i in range(length):16 tmp = '{}'.format(excel[i+1])17 text += tmp18 text += "\n"19 return text20 21 def GetCsv(csvFile):22 '''23 函数功能:打开csv文件并获取数据,返回文件数据24 csvFile: csv文件的路径和名称25 '''26 ls = []27 csv = open(csvFile, 'r', encoding="utf-8")28 for line in csv:29 line = line.replace('\n', '')30 ls.append(line.split(','))31 return ls32 33 34 def CsvToHtml(csvFile, HTMLFILE, thNum):35 '''36 函数功能:将csv格式文件转换为html格式文件37 csvFile: 需要打开和读取数据的csv文件路径38 HTMLFILE: 保存的html文件路径39 thNum: csv文件的列数,需注意其中是否包括csv文件第1列无意义的数据,40 此处包含因此在调用时需要增加141 '''42 # HTML1 HTML2 分别为html文件的首部和尾部43 HTML1 = '''44 \n\n\n 45Python成绩表
46
转化效果:
四、使用python写CGI程序
# -*- coding:utf-8 -*-''' my first CGI '''print("Content-type:text/html\r\n\r\n") # HTTP头的一部分print("")print("")print("Hello World - First CGI Program ")print("")print("")print("Hello World! This is my first CGI program
")print("")print("")
效果展示:
2. 将刚刚的csv格式文件转化为CGI程序展示
代码展示(事实上只要对前面的代码稍作修改即可):
1 # -*- coding:utf-8 2 ''' 3 This is a programe that can change csv into html. 4 @author:步平凡 5 ''' 6 7 def fill_data(excel, length=4): 8 ''' 9 函数功能:填充表格的一行数据,返回html格式的字符串text10 excel: 表格中的一行数据11 length: 表格中需要填充的数据个数(即列数),默认为4个12 由于生成csv文件时自动增加了1列数据,因此在format()函数从1开始13 '''14 text = ''15 for i in range(length):16 tmp = '{}'.format(excel[i+1])17 text += tmp18 text += "\n"19 return text20 21 def GetCsv(csvFile):22 '''23 函数功能:打开csv文件并获取数据,返回文件数据24 csvFile: csv文件的路径和名称25 '''26 ls = []27 csv = open(csvFile, 'r', encoding="utf-8")28 for line in csv:29 line = line.replace('\n', '')30 ls.append(line.split(','))31 return ls32 33 34 def CsvToHtml(csvFile, thNum):35 '''36 csvFile: 需要打开和读取数据的csv文件路径37 HTMLFILE: 保存的html文件路径38 thNum: csv文件的列数,需注意其中是否包括csv文件第1列无意义的数据,39 此处包含因此在调用时需要增加140 '''41 csv_list = GetCsv(csvFile) # 获得csv文件数据42 43 print("Content-type:text/html\r\n\r\n")44 print('''45 \n\n\n 46Python成绩表
47
{} | '.format(csv_list[0][i]))50 print("
---|
效果展示: