三、文件操作、错误与异常处理等(爬虫及数据可视化)

三、文件操作、错误与异常处理等(爬虫及数据可视化)

  • 1,文件操作
  • 2,错误与异常

1,文件操作

学习文件操作的相关知识,将一些数据存起来,打开、关闭、读取、写入,重命名、删除等操作在os模块中有

Test.txt

hello world,i am here--1!
hello world,i am here--2!
hello world,i am here--3!
hello world,i am here--4!
hello world,i am here--5!
#-*- codeing = utf-8 -*- 
#@Time : 2020/11/19 16:03
#@Author : 招财进宝
#@File : demo2.py
#@Software: PyCharm'''
f=open("test.txt","w")  #打开文件,“w”模式(写模式),文件不存在就新建
f.write("hello world,i am here!")       #必须要以w模式方式打开,才能写入
f.close()               #关闭文件
'''''' #read方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
#网络,文件传输时,读的二进制,或者本来字符的,可以直接按照字符数量读,直接下载文件时会告诉文件大小,如下载器
#test.txt   (hello world,i am here!)
f=open("test.txt")          #打开已经存在的文件,若不存在,则报错,默认模式是“r”(只读模式)content = f.read(5)     #从开头向后读5个字符出来
print(content)content = f.read(5)     #从上一个读取的字符后,读取5个字符
print(content)f.close()               #关闭文件
''''''
f=open("test.txt","r")content = f.readlines()         #将整个文档全部读取进来(形成一个列表),每行作为一个字符串元素
print(content)i = 1
for temp in content:print("%d:%s"%(i,temp))i+=1f.close()               #关闭文件
'''f=open("test.txt","r")content = f.readline()         #将整个文档全部读取进来(形成一个列表),每行作为一个字符串元素
print("1:%s"%content,end="")    #不进行换行content = f.readline()         #将整个文档全部读取进来(形成一个列表),每行作为一个字符串元素
print("2:%s"%content,end="")
f.close()               #关闭文件

2,错误与异常

错误是无法预料到的,而异常是我们可以预料到的,可以针对要发生的异常进行处理

#-*- codeing = utf-8 -*- 
#@Time : 2020/11/19 16:40
#@Author : 招财进宝
#@File : demo3.py
#@Software: PyCharm'''
#发生异常
print("----test-----1---")
f=open("123.txt","r")               #只读模式打开一个不存在的文件,错误一旦发生,后面语句不再执行
print("----test-----2---")          #这句代码不会执行
''''''
#捕获异常
#try看某段代码是否出错
try:print("----test-----1---")f=open("123.txt","r")               #错误一旦发生,后面语句不再执行print("----test-----2---")
except IOError:                     #捕获到了异常,文件没找到属于IO异常(输入输出异常)pass                            #捕获异常后执行的代码''''''
try:print(num)
#except IOError:                 #异常类型想要被捕获,需要一致,这里报道异常不再是IOError,而是NameError(可在控制台查看)
except NameError:pass
''''''
try:print("----test-----1---")f = open("123.txt", "r")  # 错误一旦发生,后面语句不再执行print("----test-----2---")print(num)
except (NameError,IOError):               #将可能产生的所有异常类型,都放到小括号中print("产生错误了")
'''#获取错误描述
'''
try:print("----test-----1---")f = open("123.txt", "r")  # 错误一旦发生,后面语句不再执行print("----test-----2---")print(num)
except (NameError,IOError) as result:               #将可能产生的所有异常类型,都放到小括号中print("产生错误了")print(result)
''''''
#捕获所有的异常(重点)
try:print("----test-----1---")f = open("123.txt", "r")  # 错误一旦发生,后面语句不再执行print("----test-----2---")print(num)
except Exception as result:               #Exception可以承接任何异常print("产生错误了")print(result)
'''#try。。。。finally 和嵌套
#编码时不仅打开读取,还要考虑各种异常,一定要将文件有个关闭的状态
import time
try:f=open("123.txt","r")try:                        #此处因为f是局部变量,所以加了一层try嵌套来执行finaalywhile True:content = f.readline()if len(content) == 0:breaktime.sleep(2)print(content)finally:                    # finally是最后必须执行的,无论前面是否错误f.close()print("文件关闭")except Exception as result:  # Exception可以承接任何异常print("产生异常")print(result)           #打印错误

作业:

  1. 应用文件操作的相关知识,通过Python新建一个文件gushi.txt,选择一首古诗写入文件中
  2. 另外写一个函数,读取指定文件gushi.txt,将内容复制到copy.txt中,并在控制台输出“复制完
    毕”。
  3. 提示:分别定义两个函数,完成读文件和写文件的操作
    尽可能完善代码,添加异常处理。
    此处未添加异常处理
#作业
#写入古诗
f=open("gushi.txt","w")     #以w模式打开,若无可自动创建f.write("窗前明月光,\n")
f.write("疑是地上霜。\n")
f.write("举头望明月,\n")
f.write("低头思故乡。\n")f.close()#定义函数用于复制
gushiList = []
#复制函数中的读取函数
def readFile():f = open("gushi.txt")gushiList=f.readlines()         #readlines()读取得到的是列表f.close()return gushiList
#复制函数中的写入函数
def writeFile(gushiList):f=open("copy.txt","w")for lineTxt in gushiList:print(lineTxt,end="")f.write(lineTxt)f.close()
#用于复制的函数
def copyFile():gushiList = readFile()writeFile(gushiList)copyFile()

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

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

相关文章

拉曼光谱入门:1.光谱的分类与散射光谱发展史

一、光谱是什么? 在一个宁静的午后,年轻的艾萨克牛顿坐在他母亲花园里的一棵苹果树下,手握一块精致的三棱镜。他沉思着光的奥秘,意识到光并非单一的白色,而是一种由多彩色组成的复杂结构。 他决心进行一次实验&#xf…

浅析C++函数重载

浅析C函数重载 C语言和C函数调用的不同 C语言会进行报错 C能成功运行并且自动识别类型 由此可以看出,C在函数调用时进行了调整,使其支持函数重载,那么我们就来看看进行了哪些调整吧😎 分析函数调用 首先我们要知道&#xff0c…

SQL中常用的内置函数

SQL中常用的内置函数 在SQL(结构化查询语言)中,有许多内置函数可用于各种数据操作和计算。以下是SQL中常用的函数。 一.字符串操作、数值计算、日期处理 COUNT(): 统计行数。 SELECT COUNT(*) FROM employees;SUM(): 计算数值列的总和。 S…

2024企业数据资产化及数据资产入表方案梳理

01 数据资产入表:是一个将组织的各类数据资产进行登记、分类、评估和管理的流程。 数据资产包括:客户信息、交易记录、产品数据、财务数据等。 做个比喻吧:数据资产入表就像是给公司的数据资产做“人口普查”—— ①找出公司有哪些数据找…

macos m2 百度paddleocr文字识别 python

创建了一个虚拟环境:conda create -n orc python3.11.7 进入虚拟环境后执行2条命令 pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple​ ​ 安装好后,在网…

204.贪心算法:分发饼干(力扣)

以下来源于代码随想录 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 对孩子的胃口进行排序sort(g.begin(), g.end());// 对饼干的尺寸进行排序sort(s.begin(), s.end());int index s.size() - 1; // 从最大的饼…

Java使用分布式锁来做数据库事务控制

步骤如下&#xff1a; 1&#xff09;选择合适的分布式锁实现&#xff1a;常见的分布式锁实现包括ZooKeeper、Redis和基于数据库等。根据具体情况选择最佳方案。 2&#xff09;获取分布式锁&#xff1a;在需要进行操作时&#xff0c;首先尝试获取分布式锁。如果成功获取到&#…

严蔚敏数据结构(C语言版)吴伟民宁编著清华大学计算机系列教材+题集+配套题库+笔记+习题PDF电子版

今天分享的是 严蔚敏数据结构&#xff08;C语言版&#xff09;题集配套题库笔记习题PDF电子版 注&#xff1a;本资源搜集于网络&#xff0c;仅供学习交流&#xff0c;严禁用于商业用途 内容简介&#xff1a; “数据结构”是计算机程序设计的重要理论技术基础&#xff0c;它…

ArcTs布局入门04——相对布局 媒体查询

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧 扫描下面的二维码关注公众号。 本文将探讨相对布局与媒体查询&#xff0c;为啥把他们放到一起呢&#xff1f;主要是因为相对布局在响应式的场景下做得不太好&#xff0c;一般情况下和媒体查询&#xff08;不同尺…

MySQL之备份与恢复(二)

备份与恢复 定义恢复需求 如果一切正常&#xff0c;那么永远也不需要考虑恢复。但是&#xff0c;一旦需要恢复&#xff0c;只有世界上最好的备份系统是没用的&#xff0c;还需要一个强大的恢复系统。 不幸的是&#xff0c;让备份系统平滑工作比构造良好的恢复过程和工具更容易…

OCR是什么,主要应用和未来发展趋势

OCR&#xff0c;即光学字符识别&#xff08;Optical Character Recognition&#xff09;&#xff0c;是一种能够将图像文件中的文字资料转化为电子文本的技术。它广泛应用于数字化文档管理、自动化数据录入、智能识别等多个领域&#xff0c;涉及的主要技术包括图像预处理、特征…

【NBU大三下期末考试实录】

软件测试 任课老师&#xff1a;WXH&#xff0c;形式&#xff1a;开卷&#xff08;中文试卷&#xff0c;可携带中文书籍&#xff09; 复习建议&#xff1a;由于是开卷考&#xff0c;不需要过早复习&#xff0c;建议考前照着上课的PPT复习&#xff0c;大致有个概念即可&#xff…

WebRtc实现1V1音视频通话

WebRtc实现1V1音视频通话 简介应用场景共享桌面的基本原理传统共享桌面WebRTC 共享桌面 相关API基本使用调用本地摄像头播放约束设置 媒体协商过程协议协议的交换与传输 WebRTC 通信过程ICE Candidate&#xff08;ICE 候选者&#xff09; 1V1视频通话 简介 WebRTC&#xff0c;名…

新版本发布丨昂辉科技EasySAR-Configurator V1.2.0再启航

昂辉科技新一代跨平台高性能AUTOSAR配置工具EasySAR-Configurator V1.2.0全新版本重磅发布&#xff01;产品基于Web架构前后端分离的方式开发&#xff0c;可提供SaaS部署&#xff0c;能够实现精准配置和最大限度的代码裁剪&#xff0c;且配备标准的约束限制、配置验证、代码生成…

thinkphp6 亚马逊S3存储

在ThinkPHP6中使用亚马逊S3作为存储需要使用一个适合的库来与S3接口交互。这里我们可以使用league/flysystem-aws-s3-v3库来实现 composer require league/flysystem-aws-s3-v3 aws/aws-sdk-php然后&#xff0c;在ThinkPHP6中配置S3存储驱动。在config目录下创建一个新的配置…

jenkins 发布服务到linux服务器

1.环境准备 1.1 需要一台已经部署了jenkins的服务器&#xff0c;上面已经集成好了&#xff0c;jdk、maven、nodejs、git等基础的服务。 1.2 需要安装插件 pusblish over ssh 1.3 准备一台额外的linux服务器&#xff0c;安装好jdk 2.流程描述 2.1 配置jenkins&#xff0c;包括p…

java函数式接口的使用-自定义函数接口@FunctionalInterface消除if else和内置4大函数式接口

1.自定义函数接口FunctionalInterface消除if else FunctionalInterface public interface MyFunction<T, R> {R apply(T... t); }import com.google.common.collect.Maps;import java.util.Map;/*** 自定义函数消除if else*/ public class MyFunctionTest {//(自定义)一…

ubuntu系统下如何安装python

在Ubuntu系统下安装Python&#xff0c;有多种方法可供选择。以下是两种常见的方法&#xff1a; 一、使用apt包管理器安装 安装步骤如下&#xff1a; 首先更新软件包列表 sudo apt update安装Python 3&#xff1a; 输入以下命令以安装Python 3&#xff08;Ubuntu的默认Pyth…

如何将 Apifox 的自动化测试与 Jenkins 集成?

CI/CD &#xff08;持续集成/持续交付&#xff09; 在 API 测试 中的主要目的是为了自动化 API 的验证流程&#xff0c;确保 API 发布到生产环境前的可用性。通过持续集成&#xff0c;我们可以在 API 定义变更时自动执行功能测试&#xff0c;以及时发现潜在问题。 Apifox 支持…

二叉树的最近公共祖先-二叉树

236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; ​ 递归 lson、rson左右子树&#xff1b; 深度优先遍历&#xff0c;遍历到p或者q就返回ture&#xff1b; class Solution { public:TreeNode* ans;bool dfs(TreeNode* root, TreeNode* p, TreeNode* q){i…