2019-04-27 Python之有关文件的学习
一.文件
1.简介
二.文件的相关操作
1.打开文件 例如: f = open("F:\\text.txt", 'r') 只读模式,不可写入

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

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

4.测试代码
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) 1235456撒大声地
>>> f.close()
>>> f = open("F:\\text.txt", 'a+')
>>> f.write("日日有见才")
5
>>> f.seek(0)
0
>>> f.read()
'1235456撒大声地日日有见才'
>>> 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()
效果

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

2019-04-27 Python之有关文件的学习的更多相关文章
- 2019.04.21 python核心特征
本阶段我们将了解Python是如何管理内存的,学习内存管理让我们掌握python的运行机制: 并且在python中有许多函数式编程的特性,比如闭包,装饰器和生成器,这些都是一些比较难掌握的概念,但面试 ...
- 2019.04.16 python基础50
第五十一节 pycharm安装 https://www.jetbrains.com/pycharm/download/#section=windows 这是另一个叫jetbrains公司开发的 默认 ...
- 2019.04.13 python基础
第一节 主要讲python背景 没什么要注意的 了解记住概念就好 python官网 python.org 自带shell 可以运行python代码 在IDLE中怎么运行代码 新建文本 ...
- python获取当前文件路径
python获取当前文件路径 学习了:https://www.cnblogs.com/strongYaYa/p/7200357.html https://blog.csdn.net/heatdeath ...
- python处理日志文件
python处理日志文件 1 打开日志文件 虽然,日志文件的后缀为.log,但是基本上与文本文件没有区别,按照一般读取文本文件的方式打开即可: fp =open("e:\\data.log& ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
- python基础之文件处理
读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...
- Python写UTF8文件,UE、记事本打开依然乱码的问题
Python写UTF8文件,UE.记事本打开依然乱码的问题 Leave a reply 现象:使用codecs打开文件,写入UTF-8文本,正常无错误.用vim打开正常,但记事本.UE等打开乱码. 原 ...
- 【Lab】Python改bat文件
[Lab]Python改bat文件 给出一个特定的树形结构,每一层的数字依次递增后,按照从上到下,同时从左到右这样的顺序生成.这么说还是不太明白,比如下面这个简单的树形结构. 按照顺序应该写成这样[3 ...
随机推荐
- 移动端遮罩及阻止页面滑动,实用!!! 我们经常做一个fixed定位的遮罩和一个提示弹框,这时就要用到。记录--
document.body.style.height = '100%'; document.body.style.overflow = 'hidden'; document.getElementByI ...
- matplotlib学习笔记
1.简介 matplotlib是python的一个2D绘图库,它可以在不同平台上地使用多种通用的绘图格式(hardcopy formats)和交互环境绘制出出版物质量级别的图片.matplotlib可 ...
- java----dom4j 解析XML
dom4j: 由于内部采用迭代器,适合读取大文档: 数据块 1.下载 https://dom4j.github.io/ 2.添加包到工程目录下 使用 import org.dom4j.Document ...
- 【转载】Linux启动初始化配置文件浅析(解决source /etc/profile重启后就失效?)
1)/etc/profile 登录时,会执行. 全局(公有)配置,不管是哪个用户,登录时都会读取该文件. (2)/ect/bashrc Ubuntu没有此文件,与之对应的是/ect/bash. ...
- Oracle中和mysql中函数的区别
oracle --> mysqlto_char(sysdate,'yyyy-mm-dd')-->date_format(s ...
- Javascript我学之六对象工厂函数与构造函数
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘. 概述 使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法. 然而,除了这两种常用的对象创建方式,JavaScript ...
- Barber paradox
According to Wikipedia, the well known barber paradox states like this: The barber is the "one ...
- UOJ#218. 【UNR #1】火车管理 线段树 主席树
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ218.html 题解 如果我们可以知道每次弹出栈之后新的栈顶是什么,那么我们就可以在一棵区间覆盖.区间求和 ...
- Mysql学习之基础
数据库基础 什么是数据库 数据库是一个以某种有组织的方式存储数据集合,通常是一个文件或是一组文件,是通过DBMS(数据库管理系统) 来对数据库进行交互的,数据库可以是保存在硬设备上的文件, 也可以不是 ...
- [LeetCode] Max Increase to Keep City Skyline 保持城市天际线的最大增高
In a 2 dimensional array grid, each value grid[i][j] represents the height of a building located the ...