Python学习笔记——文件操作、异常捕获、模块

  • 食用说明:本笔记适用于有一定编程基础的伙伴们。希望有助于各位!

文件读取

文件操作比较常见,通常我们需要对文件进行读取操作:

    f1 = open('assets/Files/测试文件.txt', 'r', encoding='UTF-8')# 辨别是否可读print(f1.readable())# 读取具有连贯性,每次读取一行固定字节,无参数时读取所有内容print(f1.read(5))# 读取文件行,读取具有连贯性,每次读取一行固定字节,无参数时读取一整行print(f1.readline(2))# 读取文件行,读取具有连贯性,无参数读取所有内容,并返回列表,有参数时即读取的行数,同样返回列表print(f1.readlines(1))

通常情况下,我们会对文件循环进行读取,或是对文件所有内容读取后逐步分析:

    fileLinesList = f1.readlines()f1.close()i1 = iter(fileLinesList)while True:try:print(next(i1))except StopIteration:print('文件读取完毕')break
  • 上面的语句是简单的文件读取方式,对读取到的文件行列表进行迭代
文件写入

读取和写入的形态类似,具体操作如下:

    f1 = open('assets/Files/测试文件.txt', 'r+', encoding='UTF-8')print(f1.writable())f1.seek(0, 2)newLinesList = ["Hello world1\n", "Hello world2\n", "Hello world3\n", "Hello world4\n"]for item in newLinesList:f1.write(item)f1.seek(0)print(f1.read())

具体的读写模式:

一个综合运用:

    infoList = [{"name": "Polaris", "age": 18, 'sex': '男'},{"name": "PolarisX", "age": 19, 'sex': '男'},{"name": "PolarisY", "age": 20, 'sex': '男'},{"name": "PolarisZ", "age": 21, 'sex': '女'},]f1 = open('assets/Files/info.txt', 'w', encoding='UTF-8')# 写入标头for key in infoList[0].keys():f1.write(key)f1.write('\t')f1.write('\n')# 写入数据for item in infoList:for key in item.keys():f1.write(str(item[key]))f1.write('\t')f1.write('\n')if f1.readable():print(f1.read())
  • 上面的例子中,我们将一个表数据写入到了文件中 
异常捕获

我们在运行程序时,常会遇到各种异常导致程序中断,解决方式如下:

    try:f1 = open('assets/Files/abc.txt', 'r', encoding='UTF-8')except Exception as e:print(COLOR.RED + '文件读取失败')print(COLOR.BLUE + str(e))
  • 当我们希望打开一个文件时,而此文件不存在时,会报错,为了捕获此异常可以通过try...except来取得异常
  • 此处使用Exception捕获所有异常,并使用as进行别名,
  • 具体的异常有很多,具体可以查看官方文档:具体异常
    try:f1 = open('assets/Files/abc.txt', 'r', encoding='UTF-8')except Exception as e:print(COLOR.RED + '文件读取失败')print(COLOR.BLUE + str(e))else:print(f1.read())finally:print(COLOR.WHITE + '文件读取操作完毕')
  •  异常未触发时会进入else语段
  • finally为必定触发语段,无论是否触发异常
生成一个异常

当然有的时候我们希望中断程序,提示异常:

    raise Exception('自定义异常')
  • 我们需要在Exception方法中填写异常内容,用于中断程序时的异常提示
断言异常

断言异常用于简化普通的判断异常:

    # 当变量大于5时,报错num1 = 10# 常规的判断if num1 >= 5:raise Exception('变量大于5')# 快捷的判断assert num1 < 5, '变量大于5'
  • 上处代码,就是一个简单断言异常,其格式可以等效于:

语法格式如下:

assert expression

等价于:

if not expression:raise AssertionError
模块的导入

  • 在导入操作时,我们使用from module import * 可以通过在模块中加入‘__all__’变量定义来限制全导入方式,具体意义如下: 
__all__ = ['add',
]def add(*args):return sum(args)def minus(mainNum, *subNums):return mainNum - sum(subNums)
  • 上面的这串代码定义两个方法,我们希望只导出add,故将其加入到all变量中,当我们使用from module import *时就会限制minus方法无法被使用,但如果使用其他方式依旧可以导入此方法
python包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/168040.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打包Qt程序,自动添加依赖的库和文件(详细步骤)

1、打开对应版本的命令面板&#xff0c;选择即可&#xff1a; 一般安装qt的时候&#xff0c;都会自带的 2、进入到编译成功的程序所在的目录&#xff1a; 输入&#xff1a;windeployqt XXX.exe&#xff08;实际的程序名字&#xff09; 这样这个程序所依赖的库都会自动添加进来…

Mysql高级——锁(2)

4. 锁的内存结构 InnoDB 存储引擎中的锁结构如下&#xff1a; 锁所在的事务信息&#xff1a; 不论是表锁还是行锁&#xff0c;都是在事务执行过程中生成的&#xff0c;哪个事务生成了这个锁结构&#xff0c;这里就记录这个事务的信息。 此锁所在的事务信息在内存结构中只是一…

“中国版Zara”拉夏贝尔:从辉煌到破产清算

文/ 大力财经 拉夏贝尔的破产清算&#xff0c;让人不禁惋惜。这个曾经被誉为“中国版Zara”的女装品牌&#xff0c;在全国拥有超过2000家门店&#xff0c;一度是年轻人的追捧对象。 然而&#xff0c;由于市场竞争激烈、品牌定位模糊、库存积压严重等问题&#xff0c;拉夏贝尔…

短视频矩阵系统源码---php搭建

一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统&#xff0c;目前是全国源头独立开发)&#xff0c;开发功能大拆解分享&#xff0c;功能大拆解&#xff1a; &#xff08;1&#xff09;数据概览&#x…

【MySQL】逻辑架构

逻辑架构 逻辑架构剖析服务器处理客户端请求连接层服务层SQL Interface : SQL接口Parser : 解析器Optimizer : 查询优化器Caches&Buffers : 查询缓存组件 引擎层存储层 SQL执行流程MySQL查询流程查询缓存解析器词法分析语法分析 优化器执行器 数据库缓冲池 逻辑架构剖析 服…

S4.2.4.3 Electrical Idle Sequence(EIOS)

一 本章节主讲知识点 1.1 EIOS的具体码型 1.2 EIOS的识别规则 1.3 EIEOS的具体码型 二 本章节原文翻译 当某种状态下&#xff0c;发送器想要进入电器空闲状态的时候&#xff0c;发送器必须发送EIOSQ&#xff0c;也既是&#xff1a;电器Electrical Idle Odered Set Sequenc…

【智慧工地源码】基于AI视觉技术赋能智慧工地

伴随着技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;庞大的建设规模催生着智慧工地的探索和研发。 建筑施工具有周期长、环境复杂、工序繁杂、人员流动性大等特点&#xff0c;所以…

【Java】<泛型>,在编译阶段约束操作的数据结构,并进行检查。

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ JAVA泛型 泛型介绍&#xff1a; ①泛型&#…

如何在Potplayer中使用公网访问群晖WebDav?

文章目录 1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透&#xff0c;映射至公网5 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内容让人一言难尽&#xff0c;就算是购买了国外的优秀作品&#xff0c;也总是在关键剧情上删删…

使用Dockerfile生成docker镜像和容器的方法记录

一、相关介绍 Docker 是一个开源的容器化平台&#xff0c;其中的主要概念是容器和镜像。 容器是 Docker 的运行实例。 它是一个独立并可执行的软件包&#xff0c;包含了应用程序及其依赖的所有组件&#xff08;如代码、运行时环境、系统工具、库文件等&#xff09;。容器可以在…

网络协议--Traceroute程序

8.1 引言 由Van Jacobson编写的Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具。尽管不能保证从源端发往目的端的两份连续的IP数据报具有相同的路由&#xff0c;但是大多数情况下是这样的。Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过…

【网络协议】聊聊ICMP与ping是如何测试网络联通性

ICMP协议格式 ping是基于iCMP协议工作的&#xff0c;ICMP全称Internet Control Message Protocol&#xff0c;就是互联网控制报文协议。其实就是有点类似于古代行军打仗&#xff0c;哨探进行前方探明具体情况。 IMCP本身处于网络层&#xff0c;将报文封装在IP包里&#xff0c;…

云原生Docker数据管理

目录 Docker的数据管理 数据卷 数据卷容器 容器互联 容器中管理数据主要有两种方式&#xff1a; 数据卷&#xff08;Data Volumes&#xff09;数据卷容器&#xff08;Data Volume Dontainers&#xff09; Docker的数据管理 数据卷 数据卷是一个供容器使用的特殊目录&a…

视频编辑不求人,教你一招制胜批量添加封面

视频添加封面是一个相当简单的任务&#xff0c;您只需要一款专门的软件&#xff0c;就能轻松搞定&#xff01;下面就是详细教程啦&#xff01; 首先&#xff0c;您需要在浏览器中搜索“固乔智剪软件”&#xff0c;进入官网并下载这款软件。固乔智剪软件是一款非常专业的视频剪辑…

免费领取!TikTok Shop “全托管”黑五大促官方备战指南来啦!

黑五网一大促即将来袭&#xff0c;自“全托管”模式上线以来&#xff0c;TikTok for Business在沙特阿拉伯和英国市场开展了古尔邦节大促、夏季大促、返校季大促等活动&#xff0c;今年更是会借着黑五网一大促之际&#xff0c;首次覆盖美国市场&#xff0c;为全托管商家带来全球…

账号合租平台源码Thinkphp6.1|内置详细搭建教程

小白账号合租平台说明 系统采用的是常见的租号平台模式,现在网络上流出的这种类型的源码还很少 平台介绍 1.租号模式,用户可自行选择单独租号或采用合租的模式。 2.支付,采用易支付通用接口 3.邀请返利,为了站长能更好推广推荐了邀请返利功能 4.用户提现功能 5.工单…

laravel框架介绍(一)

laravel框架是一套简洁&#xff0c;优雅的PHPWeb开发框架。

2023IG新功能大整理,更多玩法助力营销推广

作为当今全球最为受欢迎的社交媒体之一&#xff0c;Instagram在2023年迎来了一系列重要的功能更新。学习了解Instagram的最新功能&#xff0c;以及如何高效利用这些新的功能和工具&#xff0c;对于跨境品牌在该平台上实现营销推广至关重要。今天给大家详细介绍 Instagram在2023…

Godot 官方2D C#重构(2):弹幕躲避

前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 实现效果 技术点说明 异步函数 Godot的事件不能在Task中运行&#xff0c;因为会导致跨线程的问题。 //这样是不行的&#xff0c;因为跨线程了&#xff0c;而且会阻塞UI线程&#xff0c;具体原因…

开关电源检测的技术标准和安全标准是什么?纳米软件为您介绍

开关电源总体技术标准 1. 外观&#xff1a;元器件排列整齐、美观、结构合理&#xff0c;焊点均匀饱满、明亮、光滑、无尖刺&#xff0c;焊接牢固。PCB板铜条无脱落、外露、无毛刺、飞边、变形。 2. 输入电压&#xff1a;110VAC/DC或220VAC/DC或380VAC三相20%;或85~264VAC全范围…