文件的学习
一、文件的相关操作
1.打开文件 例如: f = open("F:\\text.txt", 'r') 只读模式,不可写入
2.读取文件 例如: f.readlines 读取一行
3.写入 f.write("日日有见才")
4.关闭文件
变量名.close()
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license()" for more information. >>> f = open("F:\\text.txt", 'r') >>> for i in f.readlines(): print(i) 五日山西卫视第五位懂球帝们千万第五期买得起 >>> f.close() >>> f = open("F:\\text.txt", 'a+') >>> f.write("哈哈哈哈") >>> f.seek(0) >>> f.read() '五日山西卫视第五位懂球帝们千万第五期买得起哈哈哈哈' >>> f.close() >>>
二、将excel文件存为csv文件
使用函数:pandas.
read_excel
(io,sheet_name = 0,header = 0,names = None,index_col = None,parse_cols = None,usecols = None,squeeze = False,dtype = None,engine = None,converter = None,true_values = None,false_values = None,skiprows = None,nrows = None,na_values = None,keep_default_na = True,verbose = False,parse_dates = False,date_parser =无,千位=无,comment = None,skip_footer = 0,skipfooter = 0,convert_float = True,mangle_dupe_cols = True,** kwds )将Excel文件读入pandas DataFrame。
1.CSV简介: CSV格式(Comma-Separated Values,逗号分隔值)是一种通用的,相对简单的文件格式,可应用在程序之间转移表格数据。由此看来,csv格式文件的应用还是很广大的。
2.io : 路径
3.sheet_name : str,int,list或None,默认值为0 (就是哪个表单)
字符串用于表单名称。整数用于零索引表单位置。字符串/整数列表用于请求多个工作表。指定“无”以获取所有工作表。
4.to_excel
将DataFrame写入Excel文件。
to_csv
将DataFrame写入逗号分隔值(csv)文件。
read_csv
将逗号分隔值(csv)文件读入DataFrame。
read_fwf
将固定宽度格式化的行表读入DataFrame。
# -*- coding:utf-8 import pandas as pd def ExcelToCsv_1(StartName, SheetName, EndName): ''' 函数功能: 将excel格式文件转换为csv格式文件,使用iat方法 StartName: excel表格的文件路径 SheetNmae: excel表格中的表格名称 EndName: csv文件的保存路径 ''' grade = pd.read_excel(StartName, sheet_name=SheetName) #从IO路径读取sheet表单 for i in range(len(grade.index)): #行 for j in range(1, len(grade.columns)): # 列 if grade.iloc[i, j] == '优秀': grade.iat[i, j] = 90 elif grade.iloc[i, j] == '良好': grade.iat[i, j] = 80 elif grade.iloc[i, j] == '合格': grade.iat[i, j] = 60 else: grade.iat[i, j] = 0 #空格换成0 grade.to_csv(EndName) #CSV ''' def ExcelToCsv_2(StartName, SheetName, EndName): 函数功能: 将excel格式文件转换为csv格式文件,使用replace方法 StartName: excel表格的文件路径 SheetNmae: excel表格中的表格名称 EndName: csv文件的保存路径 缺点: 无法将空值替换为0 grade = pd.read_excel(StartName, sheet_name=SheetName) Grade = grade.replace("优秀", "90") Grade = Grade.replace("良好", "80") Grade = Grade.replace("不合格", "60") Grade = Grade.replace("合格", "60") Grade = Grade.replace("NaN", "0") Grade.to_csv(EndName) ''' ExcelToCsv_1("D:\\Python_1.xlsx", "Sheet1", "D:\\Python_1.csv") #ExcelToCsv_2("D:\\Python_2.xlsx", "Sheet1", "D:\\Python_2.csv")
效果
三、CSV格式文件转换成html
先看一下HTML中表格的代码
#返回一行代码 def One_line_of_code(str,thNum): text = '<tr>' for i in range(thNum): if len(str[i+1]) == 0: #如果是空,即长度为0 str[i+1]=0 print(str[i+1]) tem = '<td align="center">{}</td>'.format(str[i+1]) text +=tem text+='</tr>' return text def creat_HTML(io,IO,thNum): hF = open(IO, 'w') #创建一个HTML文件 #写入代码 HTML1 = ''' <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=gbk2313> <h1 align=center>Python成绩表</h2> <table border='blue'>\n''' HTML2 = "</table>\n</body>\n</html>" hF.write(HTML1) hF.write(csv_to_HTML(io,thNum)) hF.write(HTML2) hF.close() def csv_to_HTML(io,thNum): csv = open(io,'r',encoding="utf-8") ls = [] #读取CSV里面的内容并且以逗号为分隔转换为ls列表 for line in csv: line = line.replace('\n', '') ls.append(line.split(',')) k='' for i in range(1,thNum+1): k+=('<td>{} </td>\n'.format(ls[0][i])) K='' for i in range(1,len(ls)): K+=One_line_of_code(ls[i],thNum) return (k+K) if __name__ =='__main__': creat_HTML("D:\\Python_2.csv", "D:\\Python_2.html", 5)
四、CSV转json
import json fr = open("D://Python_2.csv", "r", encoding='utf-8') #转换为UTF-8,否则出现编码gbk编码错误 ls =[] for line in fr: line = line.replace("\n", "") #去除换行 ls.append(line.split(',')) #去除空格 fr.close() #把CSV里面的内容读取到列表里,并且关闭文件 fw = open("D://Python_json.json", "w") #创建一个新文件,模式为覆盖写 for i in range(1,len(ls)): ls[i] = dict(zip(ls[0], ls[i])) #zip为内置函数,能够将两个长度相同的 列表组 合成一个关系对 json.dump(ls[1:],fw, sort_keys=True, indent=4, ensure_ascii=False) ensure...==False 保种可以输出中文 fw.close()
效果图