一.文件读写的读书笔记
1.文件类型:文本文件,二进制文件
2.文件的打开与关闭
文件可通过open()函数打开,open()有两个参数:文件名和打开模式。open()函数格式如下:<变量名>=open(<文件名>,<打开模式>)
文件的打开模式
| 模式 | 含义 | 
|---|---|
| r | 只读 | 
| r+ | 读写 | 
| w | 写入,先删除原文件,再重新创建并写入,若文件不存在则创建 | 
| w+ | 读写,先删除原文件,再重新创建并写入,若文件不存在则创建 | 
| a | 写入,在文件末尾追加新内容,若文件不存在则创建 | 
| a+ | 读写,在文件末尾追加新内容,若文件不存在则创建 | 
| b | 打开二进制文件,可与r,w,a,+结合使用,如:wb+ | 
| U | 支持所有换行符:\r, \n, \r\n,可与r,w,a,+结合,但必须以r开头,如'rUa+', 'rUw+' | 
注:以'w'、'a'模式打开文件,只支持写入,不支持读。
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值) | 
遍历文件:
df = input(“请输入要打开的文件名:”) fo = open(df,“r”) for line in fo: print(line) fo.colse()
二.把exce文件存为csv格式
实现转化的代码如下:
# -*- coding: utf-8 -*- """ @Editor:豆芽运气 This is a that can change excel into csv. """ import pandas as pd import numpy as np import matplotlib.pyplot as plt #提供数据绘图功能的第三方库 #df.to_excel('C:/Users/Asus/Desktop/1.xlsx',sheet_name='dfg') df=pd.read_excel('C:/Users/Administrator/Desktop/Python_1.xlsx.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(0,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 elif df.iloc[i,j]=='不合格': df.iat[i,j]=1 else: df.iat[i,j]=0 df.to_csv('C:/Users/Administrator/Desktop/Python_1.csv') print(df)
转换的前后对比如下图:


# -*- coding:utf-8
'''
This is a programe that can change csv into html.
@author: 
'''
# -*- coding:utf-8
'''
This is a programe that can change excel into csv.
@author:豆芽运气
'''
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("C:/Users/Administrator/Desktop/Python_1.csv", "C:/Users/Administrator/Desktop/Python_1.html",5)
执行效果如下:

  四。
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号