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

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

高抗扰度汽车光耦合器的特性

晶台光电推出的125℃光耦合器系列产品&#xff08;包括KL357NU、KL3H7U和KL817U&#xff09;&#xff0c;专为高温环境下的汽车应用设计&#xff0c;具备以下核心优势和技术特点&#xff1a; 一、技术特性分析 高温稳定性 采用先进的LED技术和优化的IC设计&#xff0c;确保在…...

智警杯备赛--excel模块

数据透视与图表制作 创建步骤 创建 1.在Excel的插入或者数据标签页下找到数据透视表的按钮 2.将数据放进“请选择单元格区域“中&#xff0c;点击确定 这是最终结果&#xff0c;但是由于环境启不了&#xff0c;这里用的是自己的excel&#xff0c;真实的环境中的excel根据实训…...