当前位置: 首页 > 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;。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...