python实训课堂笔记--数据持久化

目录

一、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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值