一、文件的操作
1、打开一个文件
语法:
open(filename,mode)
解释:
filename:代表你要访问的文件名
mode:这里代表你打开文件的模式,有 只读,写入,读写,追加等模式;默认为只读模式
(r表示是文本文件,rb是二进制文件)
如果文件不存在,这会抛出IOError
的错误,并且给出错误码和详细的信息告诉你文件不存在:
二、文件的操作方法
三、将excel文件转为csv格式
要打开的文件最好不要用中文起名,容易读不出来
# -*- coding: utf-8 -*-
"""
Created on Thu May 23 13:14:24 2019
@author: yyp
"""
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#df.to_excel('C:\Users\Admin\Desktop\Python_1.xlsx',sheet_name='dfg')
df=pd.read_excel('D:/Python/aaa.xlsx',index_col=None,na_values=['NA'])
print(df)
for i in range(len(df.index)):
# print(df.iloc[i,1])
for j in range(1,len(df.columns)):
if df.iloc[i,j]=='优秀':
df.iat[i,j]=90
elif df.iloc[i,j]=='良好':
df.iat[i,j]=80
elif df.iloc[i,j]=='合格':
df.iat[i,j]=60
else:
df.iat[i,j]=1
df.to_csv('D:\practise/Python成绩1.csv')
print(df)
得到的结果如下:
四、将csv格式转为html格式
代码如下:
# -*- coding:utf-8
'''
author:yyp
function:change csv file into html file
'''
def fill_data(excel, length=4):
'''
函数功能:填充表格的一行数据,返回html格式的字符串text
excel: 表格中的一行数据
length: 表格中需要填充的数据个数(即列数),默认为4个
由于生成csv文件时自动增加了1列数据,因此在format()函数从1开始
'''
text = '<tr>'
for i in range(length):
tmp = '<td align="center">{}</td>'.format(excel[i+1])
text += tmp
text += "</tr>\n"
return text
def GetCsv(csvFile):
'''
函数功能:打开csv文件并获取数据,返回文件数据
csvFile: csv文件的路径和名称
'''
ls = []
csv = open(csvFile, 'r', encoding="utf-8")
for line in csv:
line = line.replace('\n', '')
ls.append(line.split(','))
return ls
def CsvToHtml(csvFile, HTMLFILE, thNum):
'''
函数功能:将csv格式文件转换为html格式文件
csvFile: 需要打开和读取数据的csv文件路径
HTMLFILE: 保存的html文件路径
thNum: csv文件的列数,需注意其中是否包括csv文件第1列无意义的数据,
此处包含因此在调用时需要增加1
'''
# HTML1 HTML2 分别为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>"
csv_list = GetCsv(csvFile) # 获得csv文件数据
hF = open(HTMLFILE, 'w') # 创建html文件
hF.write(HTML1) # 写入html文件首部
for i in range(1, thNum+1): # 写入表格的表头(即第1行)
hF.write('<th width="20%">{}</th>\n'.format(csv_list[0][i]))
hF.write("</tr>\n")
for i in range(1, len(csv_list)): # 写入表格的数据,从第2行开始为数据
hF.write(fill_data(csv_list[i], 5))
hF.write(HTML2) # 写入html文件尾部
hF.close() # 关闭html文件
CsvToHtml("D:/python/Python成绩1.csv", "D:/python/Python成绩11.html", 5)
结果如下:
五、将csv文件转换成json格式
import json
fr=open("D:/python/Python成绩1.csv","r")
ls=[]
for line in fr:
line=line.replace("\n","")
ls.append(line.spilt(','))
fr.close
fw=open("D:/python/Python成绩2.json","w")
for i in range(1,len(ls)):
ls[i]=dict(zip(ls[0]),ls[i])
json.dump(ls[1:],fw,sort_keys=True,indent=4,ensure_ascii=False)
fw.close