找回密码
 会员注册
查看: 24|回复: 0

python简单的保存数据所使用的三大方法

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71625
发表于 2024-9-9 14:46:40 | 显示全部楼层 |阅读模式
一、open()方法Python open() 方法用于打开一个文件,并返回文件对象。注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。open(file,mode='r')mode:文件打开模式,默认为 'r'(只读)。其他常见模式包括:'w':写入模式,会覆盖原有文件。'a':追加模式,会在文件末尾追加内容。'b':二进制模式。1.读取文件read()方法会读取文件中的所有内容withopen('example.txt','r')asfile:content=file.read()print(content)readline()读取文件中的一行内容,返回一个字符串withopen('example.txt','r')asfile:content=file.readline()print(content)readlines()可以读取多行内容,逐行读取并返回一个列表withopen('example.txt','r')asfile:content=file.readlines()print(content)这里使用了with语句,它会自动处理文件的打开和关闭,确保文件在操作完成后正确关闭。2.写入文件write()写入一行内容,若文件中有内容则覆盖文件中的所有内容withopen('example.txt','w')asfile:file.write('Hello,World!')writelines()写入多个多行内容withopen('example.txt','w')asfile:file.writelines(["dasd\n","adshad\n"])3.追加内容withopen('example.txt','a')asfile:file.write('\nshuruyihang')使用'a'模式可以在文件末尾追加内容,而不是覆盖原有内容。4. 读取二进制文件,使用'b'模式可以读取二进制文件,如图片或音频文件,可以返回一个字节流withopen('./heads/aaa.jpg','rb')asfile:data=file.read()print(data)二、JSON和Pickle序列化序列化:将python数据结构转换为字符串反序列化:将字符串转换为python数据结构方便解析1.序列化(编码)-将Python对象转换成JSON字符串data={'name':'Kimi','age':30,'skills':['Python','DataAnalysis']}json_string=json.dumps(data)print(json_string)json.dumps()可以将python数据转化为json字符串2.dump写入文件:importjsondata={'name':'Kimi','age':30,'skills':['Python','java']}withopen("example.txt","w")asf:json.dump(data,f)json.dump(python数据,文件),dump可以直接将python数据转为json字符串,并存于文件中3.反序列化(解码)-将JSON字符串转换回Python对象:withopen("example.txt","r")asf:content=f.read()print(content,type(content))datas=json.loads(content)print(datas,type(datas))json.loads()将文件中存储的json字符串转为python数据类型4.load读取文件:withopen("example.txt","r")asf:datas=json.load(f)print(datas,type(datas))json.load()直接将文件中存储的json字符串转为python数据类型并存储进文件中在python中json和pickle都可以使用dumps、dump、loads、load,比较JSON和Pickle可读性:JSON是文本格式,易于阅读和编写;Pickle是二进制格式,不便于阅读。跨语言:JSON是跨语言的,可以被多种编程语言解析;Pickle仅限于Python。复杂性:Pickle可以序列化几乎所有的Python对象,包括函数、类等;JSON只能序列化基本数据类型和对象。安全性:JSON相对安全,因为其格式简单;Pickle可能存在安全风险,特别是加载不可信的文件。三、os模块1.chdir()更改当前文件路径importospath="/tmp"#查看当前工作目录path=os.getcwd()#修改当前工作目录os.chdir(path)#查看修改后的工作目录retval=os.getcwd()print("目录修改成功%s"%retval)2.listdir()列出当前路径下的所有文件importos#打开文件path="D:\python2407\python基础语法"dirs=os.listdir(path)#输出所有文件和文件夹forfileindirs:print(file)3.exists()判断当前路径是否存在,如果路径path存在,返回True;如果路径path不存在或损坏,返回False。print(os.path.exists("f:\Program\hello.txt"))print(os.path.exists("D:\python2407\python基础语法"))4.abspath()返回一个文件夹的绝对路径和dirname()返回一个文件路径的父级路径print(os.path.abspath("D:\python2407\python基础语法"))print(os.path.dirname("D:\python2407\python基础语法"))5.mkdir()创建一个文件rmdir()删除一个文件os.mkdir("D:\python2407\ixie")os.rmdir("D:\python2407\ixie")rmdir()则可将文件删除
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 06:00 , Processed in 0.757760 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表