文件的学习

一、文件的相关操作

  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_exceliosheet_name = 0header = 0names = Noneindex_col = Noneparse_cols = Noneusecols = Nonesqueeze = Falsedtype = Noneengine = Noneconverter = Nonetrue_values = Nonefalse_values = Noneskiprows = Nonenrows = Nonena_values = Nonekeep_default_na = Trueverbose = Falseparse_dates = Falsedate_parser =无千位=无comment = Noneskip_footer = 0skipfooter = 0convert_float = Truemangle_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>{}&nbsp;</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()

效果图

 

posted @ 2019-05-12 22:07  半松  阅读(371)  评论(0编辑  收藏  举报