数据持久化知识

数据持久化知识

数据持久化:将数据从瞬时状态转换为持久状态。
文本文件,表格文件

python 操作文件
操作文本文件:新建(重命名)->打开->写数据->保存关闭
打开->读数据->关闭

表格文件(exce):新建->打开->读数据->保存、关闭、重命名
打开->读数据->关闭

文件操作形式:
a.以什么形式操作文件。 b.以什么形式操作文件

a.以什么形式操作文件:读、写
r:只读,文件不存在,报错。
w:只写,文件不存在,先创建。文件存在,先清空
a:追加,文件不纯在,先创建。文件存在,继续添加内容。

b以什么数据类型操作文件。
t.字符串形式(如果选t, 可以不写,默认为r等于rt、tr)
b:二进制形式。 一般计算机中存储的数据都是以二进制形式存在的(图片、音频、视频)

文件操作形式 应该咋样使用。
从以什么形式操作文件 和 以什么数据类型操作文件 各选其一组合使用。
‘rt’ ,‘rb’,‘br’,‘br’,等

文件的读操作

open(参数1,参数2)
参数1:文件路径、文件名
参数2: 文件操作模式
参数3:编码方式.encoding=‘utf-8’
参数4:换行方式,newline=‘’(读操作不需要指定)

补充:\r将鼠标光标移动到下一行行首。

以文件对象的形式打开以存在文件
file= open(r’text.txt’,‘r’,encoding=‘wtf-8’)
print(file)

读操作:read readline, readlines
read :一次性将文件中内容以字符串形式读出来
result =file.reafd()
print(result,type(result))
readline:每次只读一行,结果为字符串
result=file.read()
print(result,type(result))
readines:一次性将所有行读出来,结果为列表,内行是列表中的每个元素

result1=file.readline()
print(result1)

result5=file.readlines()
print(result5)

关闭文件
file .close()

写操作

import fileinput

file=open(‘古诗.txt’,‘a’,encoding=‘utf-8’,newline=‘’)
…write:向文件写内容
str1=‘静夜思\n李白\n床前明月光\n疑是地上霜\n’
file.write(str1)
file.close()

读操作和写操作时编码要保持一致
file=open(‘古诗.txt’,‘a’,encoding=‘utf-8’,newline=‘’)
…write:向文件写入内容
str1=‘举头望明月\n低头思故乡’
file.write(str1)
file.close()

with的用法

预定义的清理操作:with

只要推出with缩进。直接执行清理操作,文件直接关掉

eval方法

with open(‘eweal测试.txt’,‘w’,encoding=‘utf-8’,newline=‘’)as file:
file.write(‘1\n’)
list1=[1,2,3,4,5]
file.write(f’{list1}')

with open(‘eweal测试.txt’, ‘r’, encoding=‘utf-8’, newline=‘’) as file:
result1=file.readline()
print(result1,type(result1))
print(file.readline())

:eval :将字符串序列化,eval中必须写长度非0的字符串
print(eval(‘1’)+2)
print(‘[1,2,3,4]’[0])
print(eval(‘[1,2,3,4]’)[0])

CSV文件

CSV文件中的数据是以表格形式展示的,但是其中的原理
import csv

csvfile=open(‘学生成绩.csv’,‘w’,encoding=‘utf-8’,newline=‘’)
先写列名
…使用csv米快提供qiter方法近行 文件写操作
myWrite = csv.writer(csvfile)
csv.writer()

myWrite.writerow([‘编号’,‘姓名’,‘年龄’,‘专业’])

…writerow - 单行写入, writerow 中传递一行列表,列表表示一行,列表中的元素代表一个元素代表一个单元格内容
writerows - 多行写入
myWrite.writerows(
[
[‘python001’,‘张三’,‘18’,‘计算机科学与技术’],
[‘python001’,‘张三’,‘18’,‘计算机科学与技术’],
[‘python001’,‘张三’,‘18’,‘计算机科学与技术’]
]
)

writerows() 多行穿入,writerows 中传递一个列表,列表中有几个元素代表几行
其中的每个元素就是代表一行内容的小列表
csvfile.close()

print(‘--------------------------------------------------------’)

file = open(‘学生成绩.csv’,‘r’,encoding=‘utf-8’)

data=csv.reader(file)
for i in data:
print(i)
file.close()

练习 算酒店的平均分

import csv

…读酒店文件
file = open(‘北京高档酒店价格分析.csv’, ‘r’, encoding=‘utf-8’)

data = csv.reader(file)

dataList = [i for i in data]
file.close()

…计算结果并写回文件
file_1 = open(‘北京高档酒店价格分析.csv’, ‘w’, encoding=‘utf-8’, newline=‘’)

myWrite = csv.writer(file_1)

dataList[0].append(‘平均评分’)
myWrite.writerow(dataList[0])

for i in dataList[1:]:
sumScroe = 0
for index in range(3, 7):
#
​ sumScroe += float(i[index])
​ AvgScroe = round(sumScroe / 4, 1)
​ print(i[0], AvgScroe)

i.append(AvgScroe)
myWrite.writerow(i)

file_1.close()
print(‘写入完成’)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值