python-26-零基础自学python-如何创建文件、读取数据、处理多个文件及程序异常处理等

news2024/11/14 14:01:10

学习内容:《python编程:从入门到实践》第二版第10章

知识点:

程序异常如何处理?try-except-else

多个文件处理

创建文件:在文件中储存数据

练习内容:

练习10-8:猫和狗 创建文件cats.txt和dogs.txt,在第一个文件中至少存储三只猫的名字,在第二个文件中至少存储三条狗的名字。编写一个程序,尝试读取这些文件,并将其内容打印到屏幕上。将这些代码放在一个try-except代码块中,以便在文件不存在时捕获FileNotFound错误,并显示一条友好的消息。将任意一个文件移到另一个地方,并确认except代码块中的代码将正确执行。

练习10-9:静默的猫和狗 修改你在练习10-8中编写的except代码块,让程序在任意文件不存在时静默失败。

我的代码&运行结果:

filename = 'cats.txt'
with open(filename,'w') as file_object:
    file_object.write('rongrong\n')
    file_object.write('maomao\n')
    file_object.write('xiluo\n')

filename = 'dogs.txt'
with open(filename,'w') as file_object:
    file_object.write('pudding\n')
    file_object.write('little black\n')
    file_object.write('snow\n')

def print_contents(filename):
    try:
        with open(filename) as file_object:
            contents = file_object.read()
    except FileNotFoundError:
        print(f"{filename}文件不存在")
        pass
    else:
        print(f"文件内容是:{contents}")

filenames = ['cats.txt','dogs.txt','rabbit.txt']
for filename in filenames:
    print_contents(filename)

 运行结果

注意点:

1.创建新文件夹时,以下这行代码中w没有加引号,这是常错点;

另一个常错点是:file_object 忘记下划线!!!

with open(filename,'w') as file_object:

2.error的名字在新的程序中不是FileNotFound,而是FileNotFoundError,见下图提示

 3.做本题时为了复习,创建文件夹用的是 with open(filename,‘w’)as file_object:的方法

write在文件中输入内容。

4.定义一个方法,也就是打印文件内容的程序,即 def print_contents(filename):

这里解答我上次提出的问题,方法的使用不用在类class里面依然适用。

5.try except else中,except容易拼写错误

except中为了不出问题,加上pass,按理说不加也可

6.多个文件处理中,文件列表 使用for filename in filenames:进行遍历,

7.最后调用打印方法的时候,不需要句点法,而是直接用print_contents(filename)就可以使用,也一定程度上解决之前关于def函数 如果不在类里面的调用方式的问题。

练习10-9:静默的猫和狗 修改你在练习10-8中编写的except代码块,让程序在任意文件不存在时静默失败。

这个只需要改一行代码,except里面改为pass即可

filename = 'cats.txt'
with open(filename,'w') as file_object:
    file_object.write('rongrong\n')
    file_object.write('maomao\n')
    file_object.write('xiluo\n')

filename = 'dogs.txt'
with open(filename,'w') as file_object:
    file_object.write('pudding\n')
    file_object.write('little black\n')
    file_object.write('snow\n')

def print_contents(filename):
    try:
        with open(filename) as file_object:
            contents = file_object.read()
    except FileNotFoundError:
        #print(f"{filename}文件不存在")这里加井号,下面变成pass即可,这样处理可以不显示
        pass
    else:
        print(f"文件内容是:{contents}")

filenames = ['cats.txt','dogs.txt','rabbit.txt']
for filename in filenames:
    print_contents(filename)

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

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

相关文章

利用 Selenium 自动化抓取 Web of Science 论文数据:以 IEEE SENSORS JOURNAL 为例

在当今数字化时代,科研工作者面临着海量学术信息的挑战。有效地收集、筛选和分析相关领域的最新研究成果,对于保持科研竞争力至关重要。然而,手动检索和整理学术文献不仅耗时耗力,还容易出现疏漏。为了解决这一问题,我…

Nginx: Rewrite功能配置/Nginx反向代理/Nginx的安全控制SSL

Rewrite功能配置 Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写。www.jd.com 注意:Nginx服务器的Rewrite功能的实现依赖于PCRE的支持,因此在编译安装Nginx服务器之前,需要安…

QGroundControl连接运行在Docker中的PX4固件模拟器

1.通过docker启动PX4无人机 docker run --rm -it jonasvautherin/px4-gazebo-headless:1.14.3 启动成功: PX4完全启动OK如下: 会看到pxh> INFO [commander] Ready for takeoff! 执行takeoff指令 查看运行docker容器与QGC客户端的主机IP: …

Java | Leetcode Java题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; class Solution {public List<String> summaryRanges(int[] nums) {List<String> ans new ArrayList<>();for (int i 0, j, n nums.length; i < n; i j 1) {j i;while (j 1 < n && nums[j 1] num…

Codeforces Round #956 (Div. 2) and ByteRace 2024 E. I Love Balls(概率期望)

题目 思路来源 官方题解 题解 特殊球不会改变普通球的顺序&#xff0c;所以都是alice拿一半里较多的部分 n-k1一半向上取整就是(n-k2)/2&#xff0c;同理n-k个一般向上取整(n-k1)/2 每个特殊球独立地来看&#xff0c;在每个空隙的概率相同 所以分别统计特殊球和非特殊球的…

Win11常用快捷键整理,带你重启电脑体验(动图演示)

名人说:人生到处知何似,应似飞鸿踏雪泥。 ——苏轼《和子由渑池怀旧》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、常用快捷键1、Win + X2、Win + Q3、Win + E4、Win + T5、Win + Tab6、Win + V7、Win + D二、其它实用快捷键8、Ctrl + Shift + Es…

YOLOv10改进 | 添加注意力机制 | 添加ACmix自注意力与卷积混合模型改善模型特征识别效率(包含二次创新PSA机制)

一、本文介绍 本文给大家带来的改进机制是ACmix自注意力机制的改进版本&#xff0c;它的核心思想是&#xff0c;传统卷积操作和自注意力模块的大部分计算都可以通过1x1的卷积来实现。ACmix首先使用1x1卷积对输入特征图进行投影&#xff0c;生成一组中间特征&#xff0c;然后根…

集创北方ICN6202 低功耗MIPIDSI转2 PORT LVDS 支持1080P分辨率,成熟批量产品

ICN6202描述&#xff1a; ICN6202是一个接收MIPIDSI输入和发送LVDS输出的桥接芯片。MIPIDSI最多支持4个车道&#xff0c;每个车道的最大运行频率为1Gbps&#xff1b;总最大输入带宽为4Gbps&#xff1b;并且还支持MIPI定义的ULPS&#xff08;超低功耗状态&#xff09;。ICN6202…

通过 tomcat 让手机访问到电脑写的 html 网页

之前实现的 html 小项目只能在自己的电脑上展示&#xff0c;如果要在其他电脑或者在手机上就看不到网页了 想要在手机上访问自己写的网页&#xff0c;我们可以借助 tomcat 首先我们可以从官网下载 tomcat 官网链接&#xff1a;apache官网 我们拉到最底部&#xff0c;找到 a…

Navicat Premium 15 for Mac/Win 中文安装包下载

Navicat Premium 15 是一款数据库管理工具&#xff0c;它支持多种类型的数据库&#xff0c;包括 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite。该软件提供了一个用户友好的图形界面&#xff0c;使得数据库的管理变得更加简单和高效。Navicat Premium 1…

HNU-2024操作系统实验-Lab7-信号量与同步

一、 实验目的 理解信号量的基本概念&#xff0c;以及其在进程同步中的作用 学习使用信号量来实现进程之间的同步 理解并解决多种并发时可能出现的问题 二、 实验过程 1.实现信息量结构初始化 ① 在lab7/src/include目录下新建prt_sem_external.h 头文件 下面对该板块进行…

Apache中使用CGI

Apache24 使用Visual Studio 2022 // CGI2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <stdio.h> #include <stdlib.h>#include <stdio.h>void main() {//设置HTML语言printf("Content-type:text/html\n\n&q…

LabVIEW优化氢燃料电池

太阳能和风能的发展引入了许多新的能量储存方法。随着科技的发展&#xff0c;能源储存和需求平衡的方法也需要不断创新。智慧城市倡导放弃石化化合物&#xff0c;采用环境友好的发电和储能技术。氢气系统和储存链在绿色能源倡议中起着关键作用。然而&#xff0c;氢气密度低&…

提升Selenium在Chrome上的HTML5视频捕获效果的五个方法

在使用Selenium进行网页自动化测试时&#xff0c;捕获HTML5视频是一个常见的需求。然而&#xff0c;许多开发者发现&#xff0c;在使用Chrome浏览器时&#xff0c;视频捕获效果并不理想&#xff0c;经常出现视频背景为空白的问题。本文将概述五种方法&#xff0c;帮助提升Selen…

Qt:13.多元素控件(QLinstWidget-用于显示项目列表的窗口部件、QTableWidget- 用于显示二维数据表)

目录 一、QLinstWidget-用于显示项目列表的窗口部件&#xff1a; 1.1QLinstWidget介绍&#xff1a; 1.2属性介绍&#xff1a; 1.3常用方法介绍&#xff1a; 1.4信号介绍&#xff1a; 1.5实例演示&#xff1a; 二、QTableWidget- 用于显示二维数据表&#xff1a; 2.1QTabl…

前端/python脚本/转换-使用天地图下载的geojson(echarts4+如果直接使用会导致坐标和其他信息不全)

解决echarts4如果直接使用天地图下载的geojson会导致坐标和其他信息不全 解决方法是使用python脚本来补全其他信息&#xff1a;center&#xff0c;level&#xff0c;adcode等内容 前提是必须有一个之前使用的json文件&#xff08;需要全一点的数据供echarts使用&#xff09; …

单端口RAM

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 参考代码 描述 题目描述&#xff1a; 设计一个单端口RAM&#xff0c;它有&#xff1a; 写接口&#xff0c;读接口&#xff0c;地址接口&#xff0c;时钟接口和复位&#xff1b;存储宽度是4位&#xff0c;深度128。…

C语言 | Leetcode C语言题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; char** summaryRanges(int* nums, int numsSize, int* returnSize) {char** ret malloc(sizeof(char*) * numsSize);*returnSize 0;int i 0;while (i < numsSize) {int low i;i;while (i < numsSize && nums[i] nums[i …

【公益案例展】亚运天穹——践行亚运理念,筑牢安全防线

‍ 安恒信息公益案例 本项目案例由安恒信息投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2024中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 杭州第19届亚运会是中国第三次举办亚洲最高规格的国际综合…

C++ | Leetcode C++题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<string> summaryRanges(vector<int>& nums) {vector<string> ret;int i 0;int n nums.size();while (i < n) {int low i;i;while (i < n && nums[i] nums[i - 1] …