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

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...