当前位置: 首页 > news >正文

7.11文件和异常

文件和异常

在这里插入图片描述

一:读取文件

在这里插入图片描述

1.读取文件的全部内容

from pathlib import Path path=Path('pi_digits.txt')
contents=path.read_text()
print(contents)
3.1415926535 8979323846 2643383279
from pathlib import Path path=Path('pi_digits.txt')
contents=path.read_text()
contents=contents.rstrip()  #rstrip() 能删除字符串末尾的空白
print(contents)
3.1415926535 8979323846 2643383279
## 读取文件内容时删除末尾的换行符
from pathlib import Path path=Path('pi_digits.txt')
contents=path.read_text().rstrip()
contents=contents.rstrip()  
print(contents)
3.1415926535 8979323846 2643383279

2.相对文件路径和绝对文件路径

在这里插入图片描述

3.访问文件中的各行—splitlines() 方法

在这里插入图片描述

from pathlib import Pathpath=Path('pi_digits.txt')
contents=path.read_text()lines=contents.splitlines()
for line in lines: print(line)
3.1415926535 8979323846 2643383279

4.使用文件的内容

from pathlib import Pathpath=Path('pi_digits.txt')
contents=path.read_text()lines=contents.splitlines()
## 创建一个字符串
pi_string = ''
for line in lines: pi_string += lineprint(pi_string) 
print(len(pi_string))
3.1415926535  8979323846  2643383279
36

5.包含 100 万位的大型文件

在这里插入图片描述

6.圆周率值中包含你的生日吗

在这里插入图片描述

birthday = input("Enter your birthday, in the form mmddyy: ")
if birthday in pi_string: print("Your birthday appears in the first million digits of pi!")
else: print("Your birthday does not appear in the first million digits of pi.")
Enter your birthday, in the form mmddyy: 0101
Your birthday does not appear in the first million digits of pi.

二:写入文件

在这里插入图片描述

1.写入一行 – write_text()

from pathlib import Path 
path = Path('programming.txt') 
path.write_text("I love programming.")
19

2.写入多行

from pathlib import Path 
contents = "I love programming.\n"
contents += "I love creating new games.\n"
contents += "I also love working with data.\n" 
path = Path('programming.txt') 
path.write_text(contents)## 会覆盖上次写的内容
78

在这里插入图片描述

三:异常-- try-except 代码块

1.处理 ZeroDivisionError 异常

在这里插入图片描述

2.使用 try-except 代码块

在这里插入图片描述

try: print(5/0) 
except ZeroDivisionError: print("You can't divide by zero!")
You can't divide by zero!

3.使用异常避免崩溃 && else 代码块

在这里插入图片描述

4.处理 FileNotFoundError 异常 – 文件没找着

在这里插入图片描述

5.分析文本

在这里插入图片描述

6.使用多个文件

在这里插入图片描述

在这里插入图片描述

7.静默失败

在这里插入图片描述

四:存储数据

当用户关闭程序时,几乎总是要保存他们提供的信息。

一种简单的方式是使用模块 json 来存储数据。

模块 json 让你能够将简单的 Python 数据结构转换为 JSON 格式的字符串

1.使用 json.dumps() 和 json.loads()

json.dumps() 来存储(写入)这组数

json.loads() 来读取它们

json.dumps() 函数接受一个实参,即要转换为 JSON 格式的数据

from pathlib import Path 
import json 
numbers = [2, 3, 5, 7, 11, 13] 
path = Path('numbers.json') ## json.dumps() 来存储
contents = json.dumps(numbers) 
path.write_text(contents)
20

在这里插入图片描述

from pathlib import Path 
import json 
path = Path('numbers.json') 
contents = path.read_text() ## json.loads() 来读取
numbers = json.loads(contents) 
print(numbers)
[2, 3, 5, 7, 11, 13]

2.保存和读取用户生成的数据

例子:提示用户在首次运行程序时输入自己的名字,并且在他再次运行程序时仍然记得他。

传统方法:

在这里插入图片描述

改进方法:

在这里插入图片描述

3.重构

在这里插入图片描述

传统方法:

在这里插入图片描述
改进方法:

在这里插入图片描述

在这里插入图片描述

http://www.xdnf.cn/news/1100251.html

相关文章:

  • 什么是进程、什么是线程(进程、线程的全方面解析)
  • 界面组件DevExpress WPF中文教程:Grid - 如何检查节点?
  • 在 React Three Fiber 中实现 3D 模型点击扩散波效果
  • JavaWeb笔记二
  • 企业级配置:Azure 邮件与 Cloudflare 域名解析的安全验证落地详解
  • CReFT-CAD 笔记 带标注工程图dxf,png数据集
  • JVM 内存结构
  • 每天一个前端小知识 Day 29 - WebGL / WebGPU 数据可视化引擎设计与实践
  • 人工智能-基础篇-29-什么是低代码平台?
  • AI问答之手机相机专业拍照模式的主要几个参数解释
  • 人工智能-基础篇-28-模型上下文协议--MCP请求示例(JSON格式,客户端代码,服务端代码等示例)
  • 大数据学习7:Azkaban调度器
  • 《Effective Python》第十三章 测试与调试——使用 Mock 测试具有复杂依赖的代码
  • Three.js+Shader实现三维波动粒子幕特效
  • 量子计算系统软件:让“脆弱”的量子计算机真正可用
  • DDL期间TDSQL异常会话查询造成数据库主备切换
  • 【NLP入门系列六】Word2Vec模型简介,与以《人民的名义》小说原文实践
  • 如何利用个人电脑搭建数据库服务器实现远程协作
  • RabbitMQ用法的6种核心模式全面解析
  • 零基础入门物联网-远程门禁开关:云平台创建
  • 自动驾驶控制系统
  • 李宏毅(深度学习)--(2)
  • 【TCP/IP】10. 引导协议与动态主机配置协议
  • 查看uniapp 项目中没有用到依赖
  • mx6ull-裸机学习实验15——RTC 实时时钟实验
  • 【养老机器人】核心技术
  • 栈题解——有效的括号【LeetCode】两种方法
  • LangChain框架 Prompts、Agents 应用
  • Git 学习笔记
  • OpenAI正准备推出一款搭载人工智能功能的网络浏览器,试图直接挑战Alphabet旗下