一.文件

  1.简介

二.文件的相关操作

  1.打开文件 例如:  f = open("F:\\text.txt", 'r') 只读模式,不可写入

  

  2.读取文件 例如: f.readlines 读取一行

  3.写入 f.write("日日有见才")

  4.测试代码

  1. Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] on win32
  2. Type "help", "copyright", "credits" or "license()" for more information.
  3. >>> f = open("F:\\text.txt", 'r')
  4. >>> for i in f.readlines():
  5. print(i)
  6.  
  7. 1235456撒大声地
  8. >>> f.close()
  9. >>> f = open("F:\\text.txt", 'a+')
  10. >>> f.write("日日有见才")
  11. 5
  12. >>> f.seek(0)
  13. 0
  14. >>> f.read()
  15. '1235456撒大声地日日有见才'
  16. >>> f.close()
  17. >>>

三.将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。

  1. # -*- coding:utf-8
  2. import pandas as pd
  3.  
  4. def ExcelToCsv_1(StartName, SheetName, EndName):
  5. '''
  6. 函数功能: 将excel格式文件转换为csv格式文件,使用iat方法
  7. StartName: excel表格的文件路径
  8. SheetNmae: excel表格中的表格名称
  9. EndName: csv文件的保存路径
  10. '''
  11. grade = pd.read_excel(StartName, sheet_name=SheetName) #从IO路径读取sheet表单
  12. for i in range(len(grade.index)): #行
  13. for j in range(1, len(grade.columns)): # 列
  14. if grade.iloc[i, j] == '优秀':
  15. grade.iat[i, j] = 90
  16. elif grade.iloc[i, j] == '良好':
  17. grade.iat[i, j] = 80
  18. elif grade.iloc[i, j] == '合格':
  19. grade.iat[i, j] = 60
  20. else:
  21. grade.iat[i, j] = 0 #空格换成0
  22. grade.to_csv(EndName) #CSV
  23.  
  24. '''
  25. def ExcelToCsv_2(StartName, SheetName, EndName):
  26.  
  27. 函数功能: 将excel格式文件转换为csv格式文件,使用replace方法
  28. StartName: excel表格的文件路径
  29. SheetNmae: excel表格中的表格名称
  30. EndName: csv文件的保存路径
  31. 缺点: 无法将空值替换为0
  32.  
  33. grade = pd.read_excel(StartName, sheet_name=SheetName)
  34. Grade = grade.replace("优秀", "90")
  35. Grade = Grade.replace("良好", "80")
  36. Grade = Grade.replace("不合格", "60")
  37. Grade = Grade.replace("合格", "60")
  38. Grade = Grade.replace("NaN", "0")
  39. Grade.to_csv(EndName)
  40. '''
  41. ExcelToCsv_1("D:\\Python_1.xlsx", "Sheet1", "D:\\Python_1.csv")
  42. #ExcelToCsv_2("D:\\Python_2.xlsx", "Sheet1", "D:\\Python_2.csv")

效果

五.CSV格式文件转换成html

先看一下HTML中表格的代码

  1. #返回一行代码
  2. def One_line_of_code(str,thNum):
  3. text = '<tr>'
  4. for i in range(thNum):
  5. if len(str[i+1]) == 0: #如果是空,即长度为0
  6. str[i+1]=0
  7. print(str[i+1])
  8. tem = '<td align="center">{}</td>'.format(str[i+1])
  9. text +=tem
  10. text+='</tr>'
  11. return text
  12.  
  13. def creat_HTML(io,IO,thNum):
  14. hF = open(IO, 'w') #创建一个HTML文件
  15. #写入代码
  16. HTML1 = '''
  17. <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=gbk2313>
  18. <h1 align=center>Python成绩表</h2>
  19. <table border='blue'>\n'''
  20. HTML2 = "</table>\n</body>\n</html>"
  21. hF.write(HTML1)
  22. hF.write(csv_to_HTML(io,thNum))
  23. hF.write(HTML2)
  24. hF.close()
  25.  
  26. def csv_to_HTML(io,thNum):
  27. csv = open(io,'r',encoding="utf-8")
  28. ls = [] #读取CSV里面的内容并且以逗号为分隔转换为ls列表
  29. for line in csv:
  30. line = line.replace('\n', '')
  31. ls.append(line.split(','))
  32. k=''
  33. for i in range(1,thNum+1):
  34. k+=('<td>{}&nbsp;</td>\n'.format(ls[0][i]))
  35. K=''
  36. for i in range(1,len(ls)):
  37. K+=One_line_of_code(ls[i],thNum)
  38. return (k+K)
  39.  
  40. if __name__ =='__main__':
  41. creat_HTML("D:\\Python_2.csv", "D:\\Python_2.html", 5)

效果

六.CSV转json

  1. import json
  2. fr = open("D://Python_2.csv", "r", encoding='utf-8') #转换为UTF-8,否则出现编码gbk编码错误
  3.  
  4. ls =[]
  5.  
  6. for line in fr:
  7. line = line.replace("\n", "") #去除换行
  8. ls.append(line.split(','))   #去除空格
  9.  
  10. fr.close() #把CSV里面的内容读取到列表里,并且关闭文件
  11.  
  12. fw = open("D://Python_json.json", "w") #创建一个新文件,模式为覆盖写
  13.  
  14. for i in range(1,len(ls)):
  15. ls[i] = dict(zip(ls[0], ls[i])) #zip为内置函数,能够将两个长度相同的 列表组 合成一个关系对
  16.  
  17. json.dump(ls[1:],fw, sort_keys=True, indent=4, ensure_ascii=False) ensure...==False 保种可以输出中文
  18. fw.close()

效果

七.列表内容写入csv

  1. import pandas as pd
  2.  
  3. list=[[1,2,3],[4,5,6],[7,9,9]]
  4. # 下面这行代码运行报错
  5. # list.to_csv('e:/testcsv.csv',encoding='utf-8')
  6. name=['one','two','three']
  7. test=pd.DataFrame(columns=name,data=list)#数据有三列,列名分别为one,two,three
  8. print(test)
  9. test.to_csv('e:/testcsv.csv',encoding='gbk')

2019-04-27 Python之有关文件的学习的更多相关文章

  1. 2019.04.21 python核心特征

    本阶段我们将了解Python是如何管理内存的,学习内存管理让我们掌握python的运行机制: 并且在python中有许多函数式编程的特性,比如闭包,装饰器和生成器,这些都是一些比较难掌握的概念,但面试 ...

  2. 2019.04.16 python基础50

    第五十一节  pycharm安装 https://www.jetbrains.com/pycharm/download/#section=windows 这是另一个叫jetbrains公司开发的 默认 ...

  3. 2019.04.13 python基础

    第一节    主要讲python背景  没什么要注意的  了解记住概念就好 python官网  python.org  自带shell  可以运行python代码 在IDLE中怎么运行代码 新建文本  ...

  4. python获取当前文件路径

    python获取当前文件路径 学习了:https://www.cnblogs.com/strongYaYa/p/7200357.html https://blog.csdn.net/heatdeath ...

  5. python处理日志文件

    python处理日志文件 1 打开日志文件 虽然,日志文件的后缀为.log,但是基本上与文本文件没有区别,按照一般读取文本文件的方式打开即可: fp =open("e:\\data.log& ...

  6. Python入门篇-文件操作

    Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...

  7. python基础之文件处理

    读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...

  8. Python写UTF8文件,UE、记事本打开依然乱码的问题

    Python写UTF8文件,UE.记事本打开依然乱码的问题 Leave a reply 现象:使用codecs打开文件,写入UTF-8文本,正常无错误.用vim打开正常,但记事本.UE等打开乱码. 原 ...

  9. 【Lab】Python改bat文件

    [Lab]Python改bat文件 给出一个特定的树形结构,每一层的数字依次递增后,按照从上到下,同时从左到右这样的顺序生成.这么说还是不太明白,比如下面这个简单的树形结构. 按照顺序应该写成这样[3 ...

随机推荐

  1. Java集合图谱

    比较 是否有序 是否允许元素重复 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是(用二叉排序树) Map AbstractM ...

  2. Hibernate Envers

    一.目的Hibernate Envers的目的是提供应用程序实体数据的历史版本,记录执行数据变更历史. 二.用途Hibernate Envers记录的审计数据,主要用于意外丢失数据找回.审查数据合法性 ...

  3. 在Pycharm中自动添加时间日期作者等信息

    1.按照下面路径以此打开File→→Settings→→Editor→→File and code Templates 右侧找到Python Script,如下图 2.设置相关代码如下 ##!/usr ...

  4. 网络安全第一集之【SQL注入:sqlmap入门】

    1,安装sqlmap和python环境 2,对于环境变量超长问题 3,使用sqlmap: sqlmap.py -u "http://k2.hlxy.net/csdw/news1.asp?dp ...

  5. 动态sql与静态sql的区别

    首先,所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程. 静态SQL,在 ...

  6. [Web]Restful风格的适用场景

    最近一直在兜兜转转Restful的相关内容,准备在原先的项目上构建restful的API. 实践过程很别扭,直到看到这篇文章[A Brief Introduction to REST], 我才终于断定 ...

  7. Handler Looper 解析

    文章讲述Looper/MessageQueue/Handler/HandlerThread相关的技能和使用方法. 什么是Looper?Looper有什么作用? Looper是用于给线程(Thread) ...

  8. Java虚拟机-对象的创建和访问

    一.对象的创建: 创建对象在java上面是很简单的,使用new关键字就可以了,但是其实在虚拟机中,java对象的创建是一个复杂的过程. 当java虚拟机遇到一个new的指令的时候,对象创建的程序正式启 ...

  9. 201771010126.王燕《面向对象程序设计(Java)》第六周学习总结

    实验六 继承定义与使用 实验时间 2018-9-28 1.实验目的与要求 (1) 理解继承的定义: 继承就是用已有类来构建新类的一种机制,当你继承了一个类时,就继承了这个类的方法和字段,同时你也可以在 ...

  10. Vue使用vue-echarts图表

    vue-echarts和echarts的区别: vue-echarts是封装后的vue插件, 基于 ECharts v4.0.1+ 开发,依赖 Vue.js v2.2.6+,功能一样的只是把它封装成v ...