目录
一、txt读写操作
1.文件基本操作
2. 文件对象常用属性
3.实际演练
(1)打开
(2)写入
(3)读取
(4)将中文进行读取操作
二、csv读写操作
1.csv的简单介绍
2.csv源码解读
3.csv方法定义
4.数据写入csv文件
5.读取csv文件
(1)for循环遍历读取
(2)用枚举函数读取
三、json读写操作
1.json文件处理
(1)把json字符串转为python字典对象
(2)把python字典对象转为json字符串
2.写json文件dump
3.读取json文件中的数据并转为对象
四、mysql增删改查操作
1.创建表
2.代码演练
一、txt读写操作
1.文件基本操作
mode='r'其中r就表示read(还可以有a(追加)、w+、a+、rw等),buffering表示缓存,encoding是编码格式,一般设置为utf-8,erros是设置一些错误(目前不需要),newline是开启新的一行,closefd是关闭。最常见的参数就是file、mode、encoding
b:当你想读写图片或者音频的时候;+:组合使用,比如r+、w+、a+就都有可读可写
2. 文件对象常用属性
3.实际演练
(1)打开
file=open('C:\\Users\\11597\\Desktop\\test1.txt','a+')
# 在桌面创建一个新的可读可写的文本文件test1.txt,并用file作为对象
在创建的时候可以用“\\”双斜杠表示转义,如果不想用“\\”还可以通过反斜杠(/)
(2)写入
file = open('C:\\Users\\11597\\Desktop\\test1.txt','a+')
# 在桌面创建一个新的可读可写的文本文件test1.txt,并用file作为对象
file.write("Hello Python")
file.write("Hello Java")
file.write("Hello Spark")
file.write("Hello Flink")
# 在文件里写入想写的内容,以字符串形式储存,因为是追加(a+)的形式,所以可以写好几行
file.flush()
# 表示刷新再写:将内存中的数据写入到文件,保证数据不流失
file.close()
结果如下:
想要实现换行效果:
file = open('C:\\Users\\11597\\Desktop\\test1.txt','a+')
# 在桌面创建一个新的可读可写的文本文件test1.txt,并用file作为对象
file.write("Hello Python\n")
file.write("Hello Java\n")
file.write("Hello Spark\n")
file.write("Hello Flink\n")
# 在文件里写入想写的内容,以字符串形式储存,因为是追加(a+)的形式,所以可以写好几行
file.flush()
# 表示刷新再写:将内存中的数据写入到文件,保证数据不流失
file.close()
结果如下(这是未删除原文件,直接运行的情况),是接着上一次的内容往下写:
换一个写入方法:
file = open('C:\\Users\\11597\\Desktop\\test1.txt','a+')
# 在桌面创建一个新的可读可写的文本文件test1.txt,并用file作为对象
#file.write("Hello Python\n")
#file.write("Hello Java\n")
#file.write("Hello Spark\n")
#file.write("Hello Flink\n")
# 在文件里写入想写的内容,以字符串形式储存,因为是追加(a+)的形式,所以可以写好几行
file.writelines(["Hello Python","Hello Java","Hello Spark","Hello Flink"])
# 写入一个列表,将列表中的数据写入文件中
file.flush()
# 表示刷新再写:将内存中的数据写入到文件,保证数据不流失
file.close()
结果如下:
想要实现换行效果:
file = open('C:\\Users\\11597\\Desktop\\test1.txt','a+')
# 在桌面创建一个新的可读可写的文本文件test1.txt,并用file作为对象
#file.write("Hello Python\n")
#file.write("Hello Java\n")
#file.write("Hello Spark\n")
#file.write("Hello Flink\n")
# 在文件里写入想写的内容,以字符串形式储存,因为是追加(a+)的形式,所以可以写好几行
file.writelines(["Hello Python\n","Hello Java\n","Hello Spark\n","Hello Flink\n"])
# 写入一个列表,将列表中的数据写入文件中
file.flush()
# 表示刷新再写:将内存中的数据写入到文件,保证数据不流失
file.close()
结果如下(这是删除了原文件的展示,此时只有最新的换行结果):
(3)读取
file = open('C:\\Users\\11597\\Desktop\\test1.txt','r+')
# 在桌面创建一个新的可读可写的文本文件test1.txt,并用file作为对象
#file.write("Hello Python\n")
#file.write("Hello Java\n")
#file.write("Hello Spark\n")
#file.write("Hello Flink\n")
# 在文件里写入想写的内容,以字符串形式储存,因为是追加(a+)的形式,所以可以写好几行
#file.writelines(["Hello Python\n","Hello Java\n","Hello Spark\n","Hello Flink\n"])
# 写入一个列表,将列表中的数据写入文件中
print(file.read())
# 读取文件的内容时我依然用a+来读取,出现了读取不出来的情况,于是换了打开模式r+
file.flush()
# 表示刷新再写:将内存中的数据写入到文件,保证数据不流失
file.close()
结果如下:
规定读取的下标长度:
file = open('C:\\Users\\11597\\Desktop\\test1.txt','r+')
# 在桌面创建一个新的可读可写的文本文件test1.txt,并用file作为对象
#file.write("Hello Python\n")
#file.write("Hello Java\n")
#file.write("Hello Spark\n")
#file.write("Hello Flink\n")
# 在文件里写入想写的内容,以字符串形式储存,因为是追加(a+)的形式,所以可以写好几行
#file.writelines(["Hello Python\n","Hello Java\n","Hello Spark\n","Hello Flink\n"])
# 写入一个列表,将列表中的数据写入文件中
print(file.read(10))
# 读取文件的内容时我依然用a+来读取,出现了读取不出来的情况,于是换了打开模式r+
# 指定读取多少下标长度
file.flush()
# 表示刷新再写:将内存中的数据写入到文件,保证数据不流失
file.close()
结果如下:
只读取文件里的一行内容:
print(file.readline())
# 表示只读取一行的内容
读取多行内容:
print(file.readlines())
(4)将中文进行读取操作
会发现全是乱码:
这时要对语句稍作修改,对字符格式转换为utf8:
file = open('C:\\Users\\11597\\Desktop\\test1.txt','r+',encoding="utf8")
此时结果如下:
二、csv读写操作
1.csv的简单介绍
2.csv源码解读
3.csv方法定义
4.数据写入csv文件
# 使用csv的好处是省去关闭资源的操作
import csv
# [标题],[第一行数据],[第二行数据]
rows=[['时间','周','开盘','最高','最低','收盘','涨幅','振幅','总手','金额','换手%','成交次数'],['2019-02-19', '二', '83.100', '83.550', '82.550', '82.600', '-1.49%', '1.19%', '12449389', '1031942610', '0.061', '3598'],['2019-02-20', '三', '82.800', '83.750', '82.500', '82.700', '+0.12%', '1.51%', '21393733', '1776409900', '0.104', '4418']]
with open('C:\\Users\\11597\\Desktop\\test1.csv',mode="w+") as file:
writer=csv.writer(file,dialect="excel")
writer.writerows(rows)
结果如下:
5.读取csv文件
(1)for循环遍历读取
# 省去关闭资源的操作
import csv
rows=[['时间','周','开盘','最高','最低','收盘','涨幅','振幅','总手','金额','换手%','成交次数'],['2019-02-19', '二', '83.100', '83.550', '82.550', '82.600', '-1.49%', '1.19%', '12449389', '1031942610', '0.061', '3598'],['2019-02-20', '三', '82.800', '83.750', '82.500', '82.700', '+0.12%', '1.51%', '21393733', '1776409900', '0.104', '4418']]
# 读取csv文件
with open("C:\\Users\\11597\\Desktop\\test1.csv",mode="r+") as file:
reader=csv.reader(file,dialect='excel')
for line in reader:
print(line)
结果如下:
(2)用枚举函数读取
三、json读写操作
一个.py文件里只能保存一个json对象,json对象可以是数组形式的json对象,也可以是单个的json对象
1.json文件处理
无外乎是文件转json对象或者是json对象转字符流
(1)把json字符串转为python字典对象
# json格式字符串转为PYTHON对象
import json
# json格式字符串
values='{"name":"Tom","age":20,"sex":"男"}'
# python字典对象
obj=json.loads(values)
# 输出name属性
print(obj["name"])
结果如下所示:
(2)把python字典对象转为json字符串
# json格式字符串转为PYTHON对象
import json
# json格式字符串
values='{"name":"Tom","age":20,"sex":"男"}'
# python字典对象
obj=json.loads(values)
# 输出name属性
#print(obj["name"])
# 将字典对象转为字符串
values1=json.dumps(obj)
print(type(values1))
结果如下所示:
2.写json文件dump
# json格式字符串转为PYTHON对象
import json
# json格式字符串
values='{"name":"Tom","age":20,"sex":"男"}'
# python字典对象
obj=json.loads(values)
# 输出name属性
#print(obj["name"])
# 将字典对象转为字符串
#values1=json.dumps(obj)
#print(type(values1))
# w+是可读可写
fio=open("C:\\Users\\11597\\Desktop\\test1.json",mode="w+",encoding='utf8')
json.dump(obj,fio)
fio.close()
结果如下(没有显示“男”的中文):
3.读取json文件中的数据并转为对象
fio=open("C:\\Users\\11597\\Desktop\\test1.json",mode="r+",encoding='utf8')
obj2=json.load(fio)
print(obj2["age"])
结果如下所示:
四、mysql增删改查操作
先装mysql包
贴一个课堂里的安装讲解视频:
pycharm项目安装mysql
1.创建表
2.代码演练
增删改查的一些简单操作(去掉#执行相应功能即可,之后再执行一次才能看到语句执行结果):
import MySQLdb
# 建立连接
db=MySQLdb.connect("localhost","root","123456","emp",charset='utf8')
# 创建游标
cursor=db.cursor()
# 执行sql
cursor.execute("select * from student")
# 获取结果
res = cursor.fetchall()
for row in res:
print(row[0])
print(row[1])
print(row[2])
print(row[3])
# 添加操作
#cursor.execute("insert into student values(6,'张三',20,'男')")
# 删除操作
#cursor.execute("delete from student where sno=6")
# 修改操作
#cursor.execute("update student set sex='女' where sno=5")
# 提交事务
db.commit()
# 关闭连接
db.close()
db.close()