Python笔记 -- 文件和异常

文章目录

    • 1、文件
      • 1.1、with关键字
      • 1.2、逐行读取
      • 1.3、写入模式
      • 1.4、多行写入
    • 2、异常
      • 2.1、try-except-else
      • 2.2、pass

1、文件

1.1、with关键字

with关键字用于自动管理资源
使用with可以让python在合适的时候释放资源
python会将文本解读为字符串

# -*- encoding:utf-8 -*-
# 如果中文运行不了加上上面那个注释

# 使用with后不需要调用close去关闭文件
# ./表示在当前目录
# 使用.\\也表示当前目录,第一个\表示转义
# with open('./text.txt') as file_obj:
# with open('.\\text.txt') as file_obj:
with open('text.txt') as file_obj:
	print(file_obj)
	msg = file_obj.read()
print(msg)

在这里插入图片描述

在这里插入图片描述

1.2、逐行读取

无论哪种方式都会改变 file_obj
所以后面那个什么也没读到

with open('text.txt') as file_obj:
    # 方式1
    lines = file_obj.readlines()
    print(lines)
    # 方式2
    for line in file_obj:
        # strip()用于去除空行
        print(line.strip())

在这里插入图片描述

1.3、写入模式

python只会将字符串写入文件中
若要写入数字,需将数字转化成字符串

def print_file(filename):
    with open(filename, 'r') as file_r:
        for info in file_r:
            print(info)


def write_file(filename, mode, text):
    with open(filename, mode) as file_w:
        file_w.write(text)


file_name = 'text.txt'
write_file(file_name, 'w', 'abcdef')
print_file(file_name)
write_file(file_name, 'w', '123')
print_file(file_name)

open的第二个实参mode:
在这里插入图片描述

  • r 只读
  • w 只写
    文件不存在:创建新文件
    文件存在:删除文件原有内容,再写入
    可以理解为就是创建一个新文件
    在这里插入图片描述
  • a 只写
    以追加的方式写入到末尾

在这里插入图片描述

  • r+ 可读可写
    在这里插入图片描述
    其他的就不一一赘述了

1.4、多行写入

filename = 'text.txt'
with open(filename, 'w') as file_w:
    file_w.write(str(123))
    file_w.write(str(456) + '\n')
    file_w.write(str(789))

with open(filename, 'r') as file_r:
    for info in file_r:
        print(info, end='')

在这里插入图片描述

2、异常

产生异常后,python会创建一个异常对象,如果编写了处理该异常的代码,程序将继续运行

2.1、try-except-else

当将0作为除数时,会产生以下错误
在这里插入图片描述

用try-except包裹后:

try:
    ret = 9 / 0
except ZeroDivisionError:
    print("0不能作为除数")
else:
    print(ret)

在这里插入图片描述
如果try中的内容运行没问题,python将会跳过except,执行else中的代码,并继续运行后面的内容,否则寻找对应的except并运行其中的代码,然后再执行后面的内容。一个try可对应多个except

2.2、pass

当捕获到异常但不想处理时,可用pass

try:
    ret = 9 / 0
except ZeroDivisionError:
    pass
else:
    print(ret)

在这里插入图片描述

笔记来源:《Python编程 从入门到实践》

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统基础的常用命令

1,Linux简介Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。1.1Linux介绍Linux出现于1991年&#xff0c…

操作技巧 | 在Revit中借用CAD填充图案的方法

在建模过程中,有时需要达到多种填充效果,而CAD中大量的二维填充图案,便是最直接的资源之一。 使用 填充图案之前 使用 填充图案之后 其中要用到主要命令便是对表面填充图案的添加与编辑 简单效果 如下 模型填充与绘图填充 区别 模型填…

Java for循环嵌套for循环,你需要懂的代码性能优化技巧

前言 本篇分析的技巧点其实是比较常见的,但是最近的几次的代码评审还是发现有不少兄弟没注意到。 所以还是想拿出来说下。 正文 是个什么场景呢? 就是 for循环 里面还有 for循环, 然后做一些数据匹配、处理 这种场景。 我们结合实例代码来…

SpringBoot+WebSocket实时监控异常

# 写在前面此异常非彼异常,标题所说的异常是业务上的异常。最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。因为…

Java实现调用第三方相关接口(附详细思路)

目录1.0.简单版2.0.升级版2-1.call.timeout()怎么传入新的超时值2-2.timeout(10, TimeUnit.SECONDS)两个参数的意思,具体含义3.0.进阶版3-1.java.net.SocketTimeoutException: 超时如何解决4.0.终极版1.0.简单版 以下是一个使用 Java 实际请求“第三方”的简单示例代…

一眼看破五花八门的链表结构

文章目录📕一:五花八门的链表结构📖链表与数组的简单对比📖单链表📖循环链表📖双向链表📕二:链表VS数组性能大比拼👿最后说一句🐱‍🐉作者简介&am…

数据挖掘(2.1)--数据预处理

一、基础知识 1.数据的基本概念 1.1基础知识 数据是数据对象(Data Objects)及其属性(Attributes)的集合。 数据对象(一条记录、一个实体、一个案例、一个样本等)是对一个事物或者物理对象的描述。 数据对象的属性则是这个对象的性质或特征,例如一个人的肤色、眼球…

GPT-4 性能炸天:10 秒做出一个网站,在考试中击败 90% 人类

一、GPT-4,吊打ChatGPT! 一觉醒来,万众期待的 GPT-4,它来了! OpenAI老板Sam Altman直接开门见山地介绍道:这是我们迄今为止功能最强大的模型! 二、GPT-4,新功能一览 究竟有多强&am…

Python人脸识别

#头文件:import cv2 as cvimport numpy as npimport osfrom PIL import Imageimport xlsxwriterimport psutilimport time#人脸录入def get_image_name(name):name_map {f.split(.)[1]:int(f.split(.)[0]) for f in os.listdir("./picture")}if not name…

Java的jar包打包成exe应用

将springboot项目使用maven打出的jar包,打成windows平台下exe应用程序包(自带jre环境)。 工具:1、exe4j 2、Inno Setup 工具放到网盘,链接:https://pan.baidu.com/s/1ZHX8P7u-7GBxaC6uaIC8Ag 提取码&#x…

SpringBoot-核心技术篇

技术掌握导图 六个大标题↓ 配置文件web开发数据访问单元测试指标指控原理解析 配置文件 1.文件类型 1.1、properties 同以前的properties用法 1.2、yaml 1.2.1、简介 YAML是 “YAML Aint Markup Language”(YAML不是一种标记语言)的递归缩写。在…

76.qt qml-QianWindow开源炫酷界面框架(支持白色暗黑渐变自定义控件均以适配)

界面介绍界面支持: 透明 白色 黑色 渐变 单色 静态图 动态图侧边栏支持:抽屉、带折叠、多模式场景控件已集成: 暗黑风格 高亮风格、并附带个人自定义控件及开源demo白色场景如下所示:单色暗黑风格如下所示:用户自定义皮肤如下所示:皮肤预览如下所示:b站入口:https://www.bilibi…

2023年跨境电商行业研究报告

第一章 行业发展 1.1 概况 跨境电商(Cross-border e-commerce)是指通过互联网销售商品或服务,跨越国家或地区边界,实现国际贸易的一种商业模式。跨境电商的兴起得益于全球化和数字化的趋势,以及互联网的普及和支付、…

Linux常用命令——基于Ubuntu22.04

本文介绍了一些Linux的常用命令。为了便于快速检索命令位置,文章二级标题都以“命令:命令的作用”展示,有些命令会先介绍命令的几个常用参数,然后结合具体的操作展示命令的使用。为了便于记忆,也会提到命令是由哪些短语…

【链表OJ题(五)】合并两个有序链表

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(五)1. 合并…

elasticsearch全解 (待续)

目录elasticsearchELK技术栈Lucene与Elasticsearch关系为什么不是其他搜索技术?Elasticsearch核心概念Cluster:集群Node:节点Shard:分片Replia:副本全文检索倒排索引正向和倒排es的一些概念文档和字段索引和映射mysql与…

原来CSS 也可以节流啊

Ⅰ、前言 「节流」 是为了减少请求的触发频率,不让用户点的太快,达到节省资源的目的 ;通常 我们采用 JS 的 定时器 setTimeout ,来控制点击多少秒才能在触发;其实 通过 CSS 也能达到 「节流」 的目的,下面…

面试官:MQ的好处到底有哪些?

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…

大数据核心技术是什么

大数据的核心层:数据采集层、数据存储与分析层、数据共享层、数据应用层,可能叫法有所不同本质上的角色都大同小异。 大数据的核心技术都包括什么? 1、数据采集 数据采集的任务就是把数据从各种数据源中采集和存储到数据存储上&#xff0c…

如何用python代码,更改照片尺寸,以及更换照片底色

前言 python浅浅替代ps?如何用代码来p证件照并且更换底色? 唉,有个小姐姐给我扔了张照片,叫我帮忙给她搞成证件照的尺寸还得换底色,她说自己忙的很 可惜电脑上没有ps只有pycharm,没得办法只能来试试看代…