news 2026/3/13 21:57:39

python学习第五周

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python学习第五周

打开文件:

try:f=open("C:/Users/25770/PycharmProjects/PythonProject7/day0108/files/1",'r')print(f.read())finally:iff:f.close()

可以简写为:

withopen("C:/Users/25770/PycharmProjects/PythonProject7/day0108/files/1")asf:print(f.read())

读取二进制文件:

f=open("C:/Users/25770/PycharmProjects/PythonProject7/day0108/files/1",'rb')

写出:

f=open("C:/Users/25770/PycharmProjects/PythonProject7/day0108/files/1",'w')f.write("hello world")

追加写出:a:append

f=open("C:/Users/25770/PycharmProjects/PythonProject7/day0108/files/1",'a')f.write("hello world")
内存流
  • StringIO
    StringIO会将字符串读入到内存中
fromioimportStringIO f=StringIO()f.write("hello")f.write("world")print(f.getvalue())
f=StringIO("hello ! \n hi \n goodbye")whileTrue:s=f.readline()ifs=="":breakprint(s.strip())

  • BytesIO
    BytesIO实现了在内存中读写bytes ,写入的并不是str,而是经过utf-8编码的bytes
fromioimportBytesIO f=BytesIO()print(f.write("中文".encode("utf-8")))print(f.getvalue())
操作文件和目录

操作系统直接操作文件和目录,,用的是os包,,,

  • os.path.abspath("."):获取当前目录的绝对地址
  • os.path.join(目录1,目录2): 将两个目录连接起来,也可以连接文件
  • os.listdir("."): 获取当前目录下面的所有目录和文件
    • os.path.isdir(): 判断遍历出来的是不是目录
  • os.path.split(): 将最后一层目录或者文件切割出来 ,返回元组
  • os.path.splitext(): 获取文件的后缀名比如.py
  • os.rename(原文件名字,新文件名字)
  • os.name: 返回操作系统的名字,,如果是windows返回nt
  • os.environ: 获取环境变量
  • os.environ.get('PATH',default): 获取指定的环境变量
  • os.remove("xxx"): 删除指定文件

遍历文件

print(os.listdir("."))print([xforxinos.listdir(".")ifos.path.isdir(x)])print([xforxinos.listdir(".")ifos.path.isfile(x)andos.path.splitext(x)[1]=='.py'])
序列化

序列化: 将内存中的东西,,变成可存储的东西,,这个过程叫做序列化,在python中交pickling…在其他语言中被叫做serilization,marshalling,flattening
反序列化:重新读取对象到内存中,也就是unpickling

  • pickle
    python中有一个可以直接序列化为二进制的工具模块pickle:
    但是每个解释器都可能不一样,,也就是说,不同的解释器,可能反序列化会失败,,所以只能用pickle保存那些不重要的数据,,不能成功反序列化也没有关系
importpickle d=dict(name="John",age=25)f=open("dump.txt","wb")pickle.dump(d,f)
importpickle f=open("dump.txt","rb")print(pickle.load(f))f.close()
  • json序列化
    • dumps(): 返回标准的json字符串
    • dump(): 写入到文件
    • loads(): 反序列化

json可以存很多,,但是不能直接存对象,,但是我们大部分都是直接存对象,,
直接存对象就需要先将对象转换成dict然后再存储

importjson d=dict(name="John",age=25)# 返回json字符串json_str=json.dumps(d)# print()j=json.loads(json_str)print(j)defstudent2dict(std):return{'name':std.name,'age':std.age}classStudent():def__init__(self,name,age):self.name=name self.age=age# 将字典还原成对象defdict2student(d):returnStudent(d['name'],d['age'])s=Student("John",25)print(json.dumps(s,default=student2dict))print(s.__dict__)sJson=json.dumps(s,default=lambdao:o.__dict__)print(sJson)s2=json.loads(sJson,object_hook=dict2student)print(s2.name)

json.dumps()参数

  • default : 默认的转换,,可以自定义函数转换,,也可以使用对象的__dict__
  • ensure_ascii : 默认是true,,,true:表示如果不是在ascii码之内的,就会被转义成\uxxxx的格式,,如果为false: 保留原始的非ascii字符,,比如直接显示张三

json.loads()参数

  • object_hook : 将字典转换成对象的钩子
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 3:31:33

完美卸载HeyGem.ai的终极指南

完美卸载HeyGem.ai的终极指南 【免费下载链接】HeyGem.ai 项目地址: https://gitcode.com/GitHub_Trending/he/HeyGem.ai 想要完全清理HeyGem.ai却不知从何下手?这份详细的卸载教程将为你提供从基础操作到深度清理的完整解决方案。作为一款功能丰富的AI应用…

作者头像 李华
网站建设 2026/3/13 20:31:13

macOS游戏修改终极秘籍:Bit-Slicer让你的游戏体验开挂升级

macOS游戏修改终极秘籍:Bit-Slicer让你的游戏体验开挂升级 【免费下载链接】Bit-Slicer Universal game trainer for macOS 项目地址: https://gitcode.com/gh_mirrors/bi/Bit-Slicer 🎮 还在为游戏卡关而烦恼吗?想要在macOS上实现无限…

作者头像 李华
网站建设 2026/3/8 10:38:59

Linux系统Zotero DEB包安装全攻略:让文献管理更简单高效

Linux系统Zotero DEB包安装全攻略:让文献管理更简单高效 【免费下载链接】zotero-deb Packaged versions of Zotero and Juris-M for Debian-based systems 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-deb 还在为Linux系统上安装文献管理软件而头疼…

作者头像 李华
网站建设 2026/3/12 23:01:02

轻松搞定多人语音分离:FunASR说话人识别技术完全指南

轻松搞定多人语音分离:FunASR说话人识别技术完全指南 【免费下载链接】FunASR A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing et…

作者头像 李华
网站建设 2026/3/11 15:51:06

GLPI实战指南:从零精通开源IT资产与工单管理神器

GLPI实战指南:从零精通开源IT资产与工单管理神器 【免费下载链接】glpi glpi-project/glpi: 是一个用于管理 IT 资产和服务的 PHP 应用程序。适合用于 IT 资产管理和服务管理。特点是提供了简单的 API,支持多种 IT 资产和服务管理功能,并且可…

作者头像 李华
网站建设 2026/3/11 14:33:37

ScpToolkit终极指南:从零开始掌握游戏控制器驱动完整教程

ScpToolkit终极指南:从零开始掌握游戏控制器驱动完整教程 【免费下载链接】ScpToolkit Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers 项目地址: https://gitcode.com/gh_mirrors/sc/ScpToolkit 还在为索尼DualShock手柄在Windows系…

作者头像 李华