当前位置: 首页 > news >正文

python 文件操作 , 异常处理 , 模块和包

文件操作

1.写数据

# open(name, mode)
#     name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
#     mode:设置打开文件的模式(访问模式):只读、写入、追加等。
#1.打开文件---通道建立--申请资源
# w 模式会清空之前的内容.再次写入新的内容.
# a 模式会在旧的内容之后追加写入新的内容.
file = open("a.txt","a")
​
#.2 写入内容
file.write('\nhello python')
​
#3.关闭通道--释放资源
file.close()
​
print('----操作结束-------')

2.读数据

#2.读取数据
# result = file.read()  # 读取全部内容
# -------------------------------------
# result = file.read(10) # 读取部分数据--按照字符个数
# ----------------------------------
# result = file.readline()#读取一行
# print(result,end='')
# result = file.readline()#读取二行
# print(result,end='')
#-----------------------------------
file = open("a.txt","a")
​
#.2 写入内容
file.write('\nhello python')
​
#3.关闭通道--释放资源
file.close()
​
print('----操作结束-------')

3.路径和编码

# 路径:
#       相对路径
#       绝对路径
​
# file = open("a.txt","a")
file = open('C:\\Users\\Administrator\\Desktop\\aaa.txt','w',encoding='utf-8')
​
#.2 写入内容
file.write('hello python\n')
file.write('你好')
​
#3.关闭通道--释放资源
file.close()
​
print('----操作结束-------')

4.文件备份

  • 补充: readline()读取全部行.

#1.打开文件
file = open('a.txt','r',encoding='utf-8')
​
#2.读取数据
while True:result = file.readline()#读取1行#1.判读读取返回的结果长度为0 ,就没有内容了.break跳出循环.# if len(result) == 0:#     break
​#2.优雅: 字符串不为空转成bool值就是Trueif not result:breakprint(result,end='')
​
#3.释放资源
file.close()
  • 补充:纯文本复制.

#需求: 把.a.txt 的内容复制到 b.txt 中
# 1.让程序去读取a.txt的内容.
# 2.把内容写入到b.txt
a_file = open('a.txt','r',encoding='utf-8')
b_file = open('b.txt','w',encoding='utf-8')
​
# 1.让程序去读取a.txt的内容.
read_info = a_file.read()
print(read_info)
# 2.把内容写入到b.txt
b_file.write(read_info)
​
a_file.close()
b_file.close()
  • 非文本文件复制

a_file = open(r"C:\Users\Administrator\Desktop\aaa.png",'rb')
b_file = open("bbb.png",'wb')
​
while True:con = a_file.read(1024)#判断con如果没有数据了.我们就break跳出if len(con) == 0:breakb_file.write(con)
​
​
a_file.close()
b_file.close()

异常处理

5.异常捕获

# 格式1: -- 缺点: 不能查看异常的原因.
# try:
#     可能发生异常的代码
# except:
#     发生异常后的处理
​
#print(8 / 0) #ZeroDivisionError: division by zero
​
# try:
#     print(8/0)
# except:
#     print('发生了错误')
​
# print('程序结束')
# ---------------------------------------------------
# 格式2: 优点: 可以看到异常的类型和原因.
# try:
#     可能发生异常的代码
# except Exception as e:
#        print(e)
#     发生异常后的处理
​
try:print(8/0)
except Exception as e:print('发生了错误',type(e),e)#<class 'ZeroDivisionError'> division by zero
​
print('程序结束')

6.捕获指定类型异常

# 格式:
# try:
#     可能发生错误的代码
# except 异常类型:
#     如果捕获到该异常类型执行的代码
​
try:# print('abc'.index('m'))  # ValueError: substring not found# print(8 / 0)print('abc'[100]) #IndexError: string index out of range
except ZeroDivisionError:print("发生了除0异常")
except ValueError:print("字符串没找到")
except Exception as e:print('服务器正在维护--请联系管理员',e)
​
print('---程序结束----')

7.捕获异常完整格式

'''try:可能发生异常的代码except Exception as result:发生了异常会走这里else:print('没有异常,真开心')finally:无论是否有异常.都会走这里.
'''
file = None
try:file = open("F:/a.txt","a")#.2 写入内容file.write('\nhello python')
​
except Exception as e:print(f'发现异常:{e}')
else:print('没有发生异常--文件读写完毕---')
finally:# 3.关闭通道--释放资源if file is not None:file.close()
​# try:#     file.close()# except Exception as e:#     print('释放资源出错')

8.异常传递

# 异常的传递.如果没有人进行捕获.那么最终给了主函数.
# 在主函数之前捕获最合适.
def aaa():print("aaa")bbb()
​
​
def bbb():print("bbb")ccc()
​
​
def ccc():print("ccc")print(8/0)
​
#主函数
if __name__ == '__main__':try:aaa()except Exception as e:print('出现异常了', e)

模块和包

9.模块和导入方式

# import 模块名
# from 模块名 import 功能名
# from 模块名 import *
# import 模块名 as 别名
# from 模块名 import 功能名 as 别名
# ------------------------------------
# import random  # 调用广泛
# print(random.randint(1, 9))
​
# from random import randint  # 调用简单
# print(randint(1, 3))
​
# from random import * # *导入表示所有模块下的工具.
# print(randint(1, 3))
​
# import random as r   # 1.避免不同模块导入冲突.2.名字短容易调用.
# print(r.randint(1, 4))
​
# from random import randint as prt  # 起一个别名
# print(prt(1,5))
​
# from aaa import randint as mrt
# print(mrt(1,6))
​
from aaa import *
​
print(randint(1, 2))
util2()
# util3()
from  aaa import util3
util3()

10.制作模块

 

11.包和导入方式

 

# import 包名.模块名
import base.base_a
base.base_a.base_a()
​
# from 包名 import 模块
from util import util_a
util_a.util_a()

相关文章:

python 文件操作 , 异常处理 , 模块和包

文件操作 1.写数据 # open(name, mode) # name&#xff1a;是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。 # mode&#xff1a;设置打开文件的模式(访问模式)&#xff1a;只读、写入、追加等。 #1.打开文件---通道建立--申请资源 # w 模式会清空之前的内…...

AIGC技术研究与应用 ---- 下一代人工智能:新范式!新生产力!(1-简介)

文章大纲 AI GC简介决策式/分析式AI(Discriminant/Analytical AI)和生成式AI (Generative AI)参考文献与学习路径模型进化券商研报陆奇演讲AI GC 《我,机器人》中所演绎的一样,主角曾与机器人展开了激烈的辩论,面对“机器人能写出交响乐吗?”“机器人能把画布变成美丽…...

Flask restful分页接口实现

1.先定义一个工作信息表: 指定一些相关的字段:工作名称、年限、级别等 class Work(db.Model):__tablename__ = workid = db.Column(db.Integer, primary_key=True)workName = db.Column(db.String(5),nullable=False)year = db.Column(db.String(20), nullable=False)level = …...

27事务管理AOP

一、MySQL事务回顾 二、Spring事务管理 Spring框架的第一大核心&#xff1a;IOC控制反转 在DeptServiceImpl下删除部门方法下新加一个删除员工信息的操作&#xff0c;注意&#xff1a;此时的id是部门id。 1、问题分析 2、Transactional-Spring事务管理 一般是在Service实现类的…...

煤矿电子封条实施方案 yolov7

煤矿电子封条实施方案采用YOLOv7网络模型算法技术&#xff0c;煤矿电子封条实施算法模型过将全国各省矿山实时监测数据&#xff0c;实现对全国各矿山及时有效的处理及分析。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff0c;研究团队希望它能够同时支持移动 GPU 和…...

Linux-inode和block概述

操作系统的文件数据除了实际内容之外&#xff0c;通常含有非常多的属性&#xff0c;例如Linux操作系统的文件权限与文件属性。文件系统通常会将这两部分内容分别存放在inode和block中。 inode 和 block 概述 文件是存储在硬盘上的&#xff0c;硬盘的最小存储单位叫做扇区sect…...

安卓开发投屏反控实现方式

在安卓开发中&#xff0c;可以通过MediaProjection API来实现屏幕投屏的功能&#xff0c;同时也可以通过Socket通信实现反控功能。下面将详细介绍实现步骤和注意事项。 1. 创建MediaProjectionManager对象 首先&#xff0c;我们需要创建一个MediaProjectionManager对象&#…...

外网SSH远程连接linux服务器「cpolar内网穿透」

✨个人主页&#xff1a;bit me&#x1f447; 目 录 视频教程&#x1f334;1. Linux CentOS安装cpolar☘️2. 创建TCP隧道&#x1f38d;3. 随机地址公网远程连接&#x1f38b;4. 固定TCP地址&#x1f384;5. 使用固定公网TCP地址SSH远程 转载自内网穿透工具的文章&#xff1a;无…...

Deferred Components-实现Flutter运行时动态下发Dart代码 | 京东云技术团队

导读 Deferred Components&#xff0c;官方实现的Flutter代码动态下发的方案。本文主要介绍官方方案的实现细节&#xff0c;探索在国内环境下使用Deferred Components&#xff0c;并且实现了最小验证demo。读罢本文&#xff0c;你就可以实现Dart文件级别代码的动态下发。 一、…...

08 集合框架1

什么是数据结构? 存储数据,组织数据的方法,就是对数据做增删改查的操作 常见的数据结构有哪些?各自的优缺点是什么? 数组:擅长修改 查找操作,不擅长增加 删除操作 链表:有单项链表和双向链表,擅长增加和删除操作,不擅长修改和查找的操作 队列:擅长操作头和尾,先进先出,…...

内卷把同事逼成了“扫地僧”,把Git上所有面试题整理成足足24W字测试八股文

互联网大厂更多的是看重学历还是技术&#xff1f; 毫无疑问&#xff0c;是技术&#xff0c;技术水平相近的情况下&#xff0c;肯定学历高/好的会优先一点&#xff0c;这点大家肯定都理解。 说实话&#xff0c;学弟学妹们找工作难&#xff0c;作为面试官招人也难呀&#xff01…...

10-jQuery-遍历children、parent、for、each、for...of等

1、for 循环&#xff1a;可以用来遍历数组或类数组对象&#xff0c;但不能用来遍历普通对象。 <ul><li>John</li><li>Doe</li><li>Jane</li><li>Doe</li> </ul><script>var lis $(li);for (var i 0; i &…...

联想集团财报:收入持续下滑,联想集团财务前景已恶化

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 联想集团2023财年第三季度财务业绩回顾 联想集团&#xff08;00992&#xff09;于2023年2月16日盘后公布了该公司2023财年第三季度的财报。 财报显示&#xff0c;联想集团的收入已经从2022财年第三季度的201.27亿美元下降到…...

GPT4限制被破解!ChatGPT实现超长文本处理的新方法

目录 前言 使用chat-gpt过程中有哪些痛点 1.无法理解人类情感和主观性 2.上下文丢失 3.约定被打断 那如何去解决这个痛点 Transformer&#xff08;RMT&#xff09;怎么去实现的 1.Transformer 模型 2.RMT模型 3.计算推理速率 4.渐进学习能力 总结 写到最后 大家好…...

奋斗,然后成功:我的架构狮之梦

与代码结缘 2018年&#xff0c;当时听说了一个很厉害的人——吴瀚清老师&#xff0c;也就是大家所熟知的“道哥”。关于他的事情有很多传说&#xff0c;于是我也很快成为了他的小迷弟&#xff0c;把吴瀚清老师当成了自己的偶像。 也是那一年&#xff0c;我买了人生中第一本关…...

自定义属性,v-bind computed的使用

0.0 自定义组件的使用 【掌握】 先自定义自己的组件 引入组件 import 组件名 from 路径/文件名 注册组件 <script> export default {components:{ // 组件注册组件名:组件名&#xff0c;组件名1},data(){ // 数据return {}},methods:{ // 方法} ​ } ​ </script&…...

解决城市内涝的措施有哪些?需要用到哪些监测设备?

随着城市化的不断推进&#xff0c;城市内涝问题日益凸显。极端天气事件如暴雨、台风等对城市基础设施和居民生活造成了严重影响。那么&#xff0c;解决城市内涝的措施有哪些?需要用到哪些监测设备?针对上述问题&#xff0c;本文会为大家一一进行讲解。 解决城市内涝的措施有哪…...

Spark大数据处理讲课笔记----Spark任务调度

零、本节学习目标 理解DAG概念了解Stage划分了解RDD在Spark中的运行流程 一、有向无环图 &#xff08;一&#xff09;DAG概念 DAG&#xff08;Directed Acyclic Graph&#xff09;叫做有向无环图&#xff0c;Spark中的RDD通过一系列的转换算子操作和行动算子操作形成了一个…...

【22-23春】AI作业10-经典卷积网络

1.LeNet & MNIST LeNet是一种神经网络的模型&#xff0c;用于图像识别和分类。他包含 3 个卷积层&#xff0c;2 个池化层&#xff0c;1 个全连接层。其中所有卷积层的所有卷积核都为 5x5&#xff0c;步长 strid1&#xff0c;池化方法都为全局 pooling&#xff0c;激活函数…...

第13章_约束

第13章_约束 1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性&#xff08;Data Integrity&#xff09;是指数据的精确性&#xff08;Accuracy&#xff09;和可靠性&#xff08;Reliability&#xff09;。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的…...

小白友好型OCR文字识别镜像:无需深度学习基础,开箱即用体验

小白友好型OCR文字识别镜像&#xff1a;无需深度学习基础&#xff0c;开箱即用体验 1. 为什么选择这款OCR镜像&#xff1f; 在日常工作和生活中&#xff0c;我们经常需要从图片中提取文字信息 - 可能是扫描的文档、拍摄的发票、或是路牌照片。传统OCR软件要么功能有限&#x…...

文墨共鸣大模型开源项目协作:GitHub Issue分析与PR描述生成

文墨共鸣大模型开源项目协作&#xff1a;GitHub Issue分析与PR描述生成 1. 引言&#xff1a;开源项目维护的“甜蜜负担” 如果你维护过一个稍微有点人气的开源项目&#xff0c;大概能懂这种感受&#xff1a;每天打开GitHub&#xff0c;通知栏里塞满了新消息。有用户提了个Iss…...

华新嘉华:如何做好GEO?记住!简单的内容堆砌达不到效果

‍在生成式AI搜索全面重塑信息获取方式的当下&#xff0c;越来越多的企业开始布局GEO&#xff08;生成式引擎优化&#xff09;&#xff0c;希望抢占AI搜索这一新兴流量入口。然而&#xff0c;一个不容忽视的现象正在蔓延&#xff1a;大量企业投入资源、批量生产内容&#xff0c…...

LinkFinder收集接口

LinkFinder可以自动化收集站点的api接口先用linkfinder爬去该js文件中所有的接口&#xff0c;再用正则表达式进行数据清洗&#xff0c;得到我们想要的api接口python3 linkfinder.py -i "https://example.com/static/js/example.js" -o cli > api.txt接着我们需要去…...

Goldpinger完全指南:如何实时可视化Kubernetes节点间网络连接

Goldpinger完全指南&#xff1a;如何实时可视化Kubernetes节点间网络连接 【免费下载链接】goldpinger Debugging tool for Kubernetes which tests and displays connectivity between nodes in the cluster. 项目地址: https://gitcode.com/gh_mirrors/go/goldpinger …...

DAMO-YOLO代码实例:OpenCV-Python图像预处理与后处理结果渲染详解

DAMO-YOLO代码实例&#xff1a;OpenCV-Python图像预处理与后处理结果渲染详解 1. 引言&#xff1a;从炫酷界面到核心引擎 当你打开DAMO-YOLO的赛博朋克界面&#xff0c;看到霓虹绿的识别框在图片上闪烁时&#xff0c;有没有想过这背后发生了什么&#xff1f;那个漂亮的界面只…...

OpenAI Agents SDK 中文实战指南:从入门到多代理协作

1. 为什么你需要OpenAI Agents SDK 第一次接触这个SDK时&#xff0c;我正为一个客户设计智能客服系统。传统方案需要写大量if-else逻辑判断用户意图&#xff0c;而Agents SDK的多代理协作机制让我眼前一亮——就像组建了一支各有所长的AI团队&#xff0c;数学问题自动转交数学专…...

萌新梦开始的地方

大家好&#xff0c;我是一名双非本科的大一新生&#xff0c;目前就读于计算机科学与技术这个专业&#xff0c;平时的兴趣爱好就是听听歌&#xff0c;健健身&#xff0c;这是我写的第一篇博客&#xff0c;我想以此来作为我学习编程的开始&#xff0c;同同时也以此来见证我在编程…...

Flutter 自定义 Widget:打造独特的用户界面

Flutter 自定义 Widget&#xff1a;打造独特的用户界面突破内置组件的局限&#xff0c;创造属于你自己的 UI 组件。一、自定义 Widget 的意义 作为一名追求像素级还原的 UI 匠人&#xff0c;我深知内置组件的局限。有时候&#xff0c;设计稿上的那个特殊按钮&#xff0c;那个独…...

Stepper595:基于74HC595的轻量步进电机驱动库

1. Stepper595库概述&#xff1a;基于74HC595的轻量级步进电机驱动方案Stepper595是一个面向资源受限嵌入式平台的精简型步进电机控制库&#xff0c;其核心设计哲学是“用最少的硬件引脚、最简的时序逻辑、最低的代码开销实现可靠双电机协同控制”。该库不依赖传统GPIO逐位模拟…...