Python语法基础07(文件与异常)

news2024/10/6 10:28:22

文件

输出文件中的内容

  • 在项目代码同路径下创建一个pi_digits文件
3.1415926535
  8979323846
  • 在fileDemo0.py中将其打开,并输出
#用函数open()打开文件,并将对象赋给file,对于open中的文件路径,可以使用相对路径也可以使用绝对路径
with open("pi_digits") as file:
    #用read()读取文件的全部内容
    contents=file.read()
print(contents)

效果:
在这里插入图片描述

逐行读取

with open("pi_digits") as files:
    for line in files:
        print(line)

效果:
在这里插入图片描述

  • 在文件中,每行的末尾都有一个看不见的换行符,而函数print()也会加上一个换行符,因此每行末尾都有两个换行符,一个来自文件,一个来自print()函数,可以用rstrip()消除多余空行

创建一个包含文件内各行内容的列表

  • 使用关键字with的时候,open()返回的文件对象只在with代码块内可以使用。如果要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中
#创建一个包含文件各行内容的列表

with open("pi_digits") as file_object:
    lines=file_object.readlines()

for line in lines:
    print(line.rstrip())

效果:
在这里插入图片描述

读取文件中的内容并使用(默认为字符串,可以用int()或者float()转换成整数,或者浮点数)

#使用文件中的内容

pi_string=""
for line in lines:
    pi_string += line.strip()

print(pi_string)
#计算pi×2的平方
print(float(pi_string)*2**2)

效果:
在这里插入图片描述

写入文件

  • 打开文件时,可以指定读取模式”r",写入模式“w”,附加模式“a”(将写入的信息加入原有文件),或读写模式“r+”,如果省略,默认以只读模式打开文件
  • 如果要写入的文件不存在,则会自动创建,如果存在,则会覆盖!!!
#写入文件
filename="hello.txt"
with open(filename,"w") as file_object:
    file_object.write("hello,world!")

效果:
在这里插入图片描述

  • 函数write()写入文件是,不会自动在文本末尾添加换行符

异常(使用try-catch代码块,即使出现异常,程序也能继续运行)

处理ZeroDivisionError异常

#定义一个除法方法
def div(numerator,denominator):
    return numerator/denominator
print("give me two numbers,and i will divide them")
print("enter q to end this program")
while True:
    numerator=input("numerator:")
    if numerator=="q":
        break
    denominator=input("denominator:")
    if denominator=="q":
        break
    try:
        result=div(int(numerator),int(denominator))
    #处理ZeroDivisionError异常
    except ZeroDivisionError:
        print("u can not divide by 0")
    else:
        print(result)

效果:
在这里插入图片描述

处理

  • 使用open()函数时,填入不存在的文件名
try:
    with open("opencv.txt",encoding="utf-8") as file_object:
        content=file_object.read()
except FileNotFoundError:
    print("this file does not exist")

效果:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年淘宝天猫内部大额隐藏粉丝福利购店铺优惠券领取入口在哪里怎么找到免费领取淘宝天猫优惠券?

草柴优惠券APP应用市场下载入口 草柴优惠券APP已上架的应用市场:华为应用市场、小米应用市场、OPPO应用市场、VIVO应用市场及百度手机助手,请打开以上应用市场搜索:草柴优惠券,即可下载通过应用市场审核验证通过的安全可信应用&a…

JavaWeb Cookie

1.Cookie 介绍 Cookie是一种用于在Web浏览器和Web服务器之间传递数据的机制。 它是由服务器发送给浏览器的小型文本文件,存储在浏览器的本地计算机上。 浏览器在后续请求中会自动将Cookie发送回服务器,以便服务器可以识别用户并提供个性化的服务。 C…

涨知识,周鸿伟当年踩的坑,如果用这么一个工具就能事半功倍

怎么让员工有效率地工作?如何考核员工?如何让员工有积极的心态?公司的汇报体系应该怎么设计? 这些问题都让360创始人周鸿伟感到困惑! 说到“红衣大炮”周鸿伟的本事,那真的不是吹! 近期&…

github:网址为 https://github.com/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址

一、无法访问github 二、尝试ping gitlab.com 三、打开站长工具 查找 ip地址 “www.github.com”A记录/cname检测结果--Dns查询|dns查询--站长工具 四、打开host文件(C:\Windows\System32\drivers\etc) 20.205.243.166 github.com 五、再次ping github&…

地图制图小技巧_点匹配线方向

目录 目的 实现步骤 功能介绍 功能入口 关键参数 结果 问题延伸 目的 我们在配图的时候,会遇到一种特定的需求:需要对点设置一个风格,并且符号风格自动跟相连或者相交的线保持垂直。 这种是否能够在SuperMap iDesktopX中自动实现呢&#xff0…

直流运算放大电路-----Howland(二)

目录 豪兰德电路形式1 电路图 计算公式 仿真与分析 豪兰德电路形式2 电路图 计算公式 豪兰德电路形式3 电路图 计算公式 改进电路 豪兰德电路形式1 模拟电子技术基础(第五版)5.7 电路图 计算公式 仿真与分析 如图,红框内为负反馈&…

.net项目开发-EF框架解决添加默认值问题

文章目录 前言EF中核心类DbContextDbContext中的SaveChanges()方法重写SaveChanges()方法注意点-Modified 其它状态下的实体如何操作 前言 最近开发.net项目,持久层用的是EF框架,也是第一次使用这个框架,用这个框架的好处就是基于实体的开发…

【UnityDOTS 小知识】如何通过DOTS修改材质属性以及替换材质与网格

如何通过DOTS修改材质属性以及替换材质与网格 一、DOTS修改材质属性 1.利用 Material Overide Asset Material Overide Asset是一个Unity资产,可以通过Create创建。 创建后指定要修改的材质,以及对应材质的属性,即可完成这个资源创建。 然…

hive关联键 NULL 关联 NULL

结论:关联键 NULL NULL时,不进行关联,即两表关联失败 案例如下: 表A 表B 表A 关联 表B selecta.id as a_id,a.name as a_name,b.id as b_id,b.name as b_name from表A a left join表B b on a.id b.id …

【FFmpeg实战】FFplay音视频同步

作者:Mirs 链接:https://www.jianshu.com/p/d7ead3a5f2bd PTS的由来 音视频同步依赖的一个东西就是pts(persentation time stamp )显示时间戳 告诉我们该什么时间显示这一帧 ,那么,这个东西是从哪里来的呢&#xff1f…

Jvm创建对象之内存分配-JVM(七)

上篇文章介绍了jvm创建,会校验是否已加载类,没有则加载,通过之前学的源码,classLoader加载完之后,虚拟机开始给类分配内存,指针移动分配和free链表分配,解决并发分配情况用cap和TLAB方法。之后设…

编写LED灯的驱动,创建三个设备文件,每个设备文件和一个LED灯绑定,当操作这个设备文件时只能控制设备文件对应的这盏灯

.编写LED灯的驱动&#xff0c;创建三个设备文件&#xff0c;每个设备文件和一个LED灯绑定&#xff0c;当操作这个设备文件时只能控制设备文件对应的这盏灯 实验现象 test.c #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <s…

【linux】使用 sftp 替换 vsftpd

为什么使用 sftp&#xff1f; 1. 基于 ssh 协议&#xff0c;保证数据安全性 2. 大多数防火墙不会阻止 ssh 协议 3. 完全基于文件系统权限对用户进行管理 4. 配置比 vsftpd 简单 另外&#xff0c;我在集成商工作服务于各大甲方&#xff0c;在厦门的一些企业&#xff0c;如&…

一步一步指导如何使用 FastSAM进行图像分割

它以50倍的速度实现了与SAM方法相当的性能。 (SAM) 是一个强大的视觉基础模型,可以根据用户交互提示分割图像中的任何对象。SAM 一经发布就因其准确性而在计算机视觉社区中获得了巨大的关注。然而,SAM 广泛使用计算量大的Transformer (ViT) 架构限制了其实际应用,特别是在…

C# NPOI操作Excel汇总

C#操作Excel有多种方法&#xff0c;如通过数据库的方式来读写Excel的OleDb方式&#xff0c;但是OleDb方式需要安装微软office&#xff0c;还可以通过COM组件方式操作Excel&#xff0c;也需要安装微软Excel。如果不想安装微软办公套餐可以使用ClosedXML、EPPlus、NPOI。本文主要…

【网络系统集成】VLAN实验

1.实验名称:VLAN实验 2.实验目的 在PacketTracer中进行模拟VLAN实验,完成“不同交换机相同VLAN间通讯”实验、“单臂路由”实验与“三层交换实现VLAN间通讯”实验,加深对VLAN间通讯相关知识的理解与掌握。 3.实验内容 3.1不同交换机相同VLAN间通讯 (1)拓扑结构图

STM32——关于时钟源的实际使用及解释

1、STM32内部有5个时钟源&#xff0c;分别为HSI、HSE、LSE、LSI、PLL。 HSE&#xff1a;高速外部时钟&#xff0c;可接石英谐振器、陶瓷谐振器&#xff0c;或者接外部时钟源&#xff0c;其频率范围为4MHZ~16MHZ。 LSE&#xff1a; 低速外部时钟&#xff0c;接频率为32.768KHZ…

ATFX国际:小非农ADP数据来袭,加息预期或再度升温

ATFX国际&#xff1a;每月发布一次的ADP数据是国际金融市场的大事件&#xff0c;它能够对周五发布的非农就业报告起到相对准确的前瞻作用。今日晚间20:15&#xff0c;美国6月ADP就业人数将发布&#xff0c;前值为增加27.8万人&#xff0c;预期值增加22.8万人&#xff0c;市场预…

【Quartus FPGA】EMIF DDR3 IP 仿真记录

EMIF (External Memory Interface) 是 Quartus 平台提供的 IP&#xff0c;用于实现高速存储器件接口与控制器。通过 Intel Quartus Prime 软件&#xff0c;可以很方便地实现 EMIF IP 电路。本文记录了使用 EMIF 实现 DDR3 控制器的仿真过程&#xff0c;软件平台为 Quartus Prim…

软件测试体系方案

目录 前言&#xff1a; 1. 引言 1.1 目标 1.2 背景 1.3 术语和定义 2. 测试体系完善 2.1 项目启动 2.2 测试计划 2.3 需求分析 2.4 测试设计 2.5 测试执行 2.6 测试记录 2.7 缺陷跟踪 2.8 测试结束 2.9 测试总结 3. 测试管理规划 3.1 测试人员 3.2 测试环境 …