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

news2024/11/22 19:22:00

文件操作

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值就是True
    if not result:
        break
    print(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:
        break
    b_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()

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

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

相关文章

【三维激光扫描】实验04:SiScan基于点云的量测功能

SiScan软件提供的基于点云的量测功能有:两点距离量测、多点距离量测、点到面距离量测、高度量测、坡度量测、角度量测、投影面积量测等等。 文章目录 一、两点距离量测二、多点距离量测三、点到面距离量测四、高度量测五、坡度量测六、角度量测七、投影面积量测一、两点距离量…

分布式与并行计算—并向算法实现

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 原始串行快速排序算法中有“分而治之”的递归调用部分&#xff0c;在每次选择pivoit并把序列按照小于pivoIt和大于pivoit分成两类后&#xff0c;左右两部分的递归排序可以并发执行。 运行时间 为了减小偶然性因素造成的时间差…

postgresql|数据库|插件学习(一)---postgresql-12的内置插件pg_stat_statements的启用和使用

前言&#xff1a; 插件就是原软件的扩展功能。postgresql有非常多的各种各样的插件&#xff0c;当然了&#xff0c;插件不安装对于我们使用数据库并没有什么太多的影响&#xff0c;可能只是不舒服一些而已&#xff0c;但有一些插件我们如果有安装&#xff0c;那么&#xff0c;对…

【NMI 2021】从生物学角度看进化计算(6个生物进化特征)

A biological perspective on evolutionary computation “生物学视角下的进化计算”&#xff0c;总结了进化算法——通过对比模拟和真实的进化&#xff0c;指出当前进化算法与生物进化存在的六点差异&#xff0c;并指出了对应的改进方案。 何为进化算法&#xff1f; 将任意问…

第二部分——长难句——第二章——复合句——第二节——状语从句

最后一类了哦 一&#xff0c;状语从句的概述 &#xff08;一&#xff09;状语从句的含义 一个句子作状语表达描述性的信息 一个主句可以组合好几个状语从句&#xff0c;因为可以表述不同方面的信息。 &#xff08;二&#xff09;状语从句的写法 状语从句的连接词叫做从属连…

Java--内部类学习笔记

本文介绍了什么是内部类,Java中的内部类:实例内部类. 静态内部类.局部内部类.匿名内部类的语法和注意事项,以及每个内部类的运用场景,以及简单介绍了匿名内部类更简洁更特殊的语法->lambda表达式 Java内部类学习笔记 一.什么是内部类?二. 内部类的分类1.实例内部类2.静态内…

【计算机视觉 | 扩散模型】新论文 | DragGAN论文:如果甲方想把大象 P 转身,你只需要拖动 GAN 就好了

文章目录 一、论文说明二、前言三、论文理解四、实验4.1 定性评估4.2 定量评估4.3 讨论 一、论文说明 2023年5月18日提交的论文&#xff0c;华人一作。 论文地址&#xff1a; https://arxiv.org/pdf/2305.10973.pdf项目地址&#xff1a; https://vcai.mpi-inf.mpg.de/projec…

pg事务:子事务

什么是子事务&#xff1f; 一般事务只能整体提交或回滚&#xff0c;而子事务允许部分事务回滚。 SAVEPOINT p1 在事务里面打上保存点标记。不能直接提交子事务&#xff0c;子事务也是通过事务的提交而提交。不过可以通过ROLLBACK TO SAVEPOINT p1回滚到该保存点。 子事务在大…

人工智能基础部分19-强化学习的原理和简单应用,一看就懂

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能基础部分19-强化学习的原理和简单应用&#xff0c;随着人工智能的不断发展&#xff0c;各种新兴技术不断涌现。作为人工智能的一个重要分支&#xff0c;强化学习近年来受到了广泛关注。本文将介绍强化学习的…

基于C++的物资管理系统的设计与实现

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 一 需求分析 程序需实现以下功能&#xff1a; 新物资信息录入&#xff08;编号、名称、库存&#xff09; 查询已录入的所有物资信息&#xff08;编号或名称为索引&#xff09; 添加物资信息&#xff08;编号或名称为索引&…

Python 初识基础

Python 初识基础 一、Python 变量定义使用二、Python 是弱类型的语言三、Python 注释四、Python 编码规范五、Python 标识命名规格六、Python 保留字表七、Python 内置函数表 一、Python 变量定义使用 声明&#xff1a;变量名 value值1、变量的值不是一成不变的&#xff0c;它…

成为顶级黑客:从零开始学习网络渗透的完整指南

前言 网络安全再进一步细分&#xff0c;还可以划分为&#xff1a;网络渗透、逆向分析、漏洞攻击、内核安全、移动安全、破解PWN等众多子方向。今天的这篇&#xff0c;主要针对网络渗透方向&#xff0c;也就是大家所熟知的“黑客”的主要技术&#xff0c;其他方向仅供参考&…

计算机视觉 YOLOv5_3.1实验记录

YOLOv5_3.1 I. 散点图II. 指标III. precision-recall_curveIV. labelsv. 可视化 I. 散点图 这些参数通常用于目标检测模型的评估。其中&#xff1a; Box表示目标检测模型检测出的所有边界框的数量&#xff1b;val Box表示用于验证检测模型性能的边界框数量&#xff1b;Objectn…

国内IEEEXplore访问加速(adblock)

访问IEEEXplore&#xff0c;需要加载一个网页需要等好久&#xff0c;然后才出来&#xff0c;就很奇怪&#xff0c;查到网上有同样这个问题 感谢原博主&#xff1a;ieeexplore加载慢的解决办法 核心原因&#xff1a; 国内无法访问地址&#xff1a; https://cdn.jwplayer.com/…

Docker搭建企业邮箱,poste.io教程

poste.io介绍 首先要知道&#xff0c;搭建企业邮箱即可拥有自己的域名后缀邮箱&#xff0c;自定义邮件地址&#xff0c;什么admin&#xff0c;root&#xff0c;info都是随便用的。Poste.io官网&#xff1a;https://poste.io/ 文档&#xff1a;https://poste.io/doc/ Poste.io…

洛谷P1618

一、问题引出 三连击&#xff08;升级版&#xff09; 题目描述 将 1 , 2 , … , 9 1, 2,\ldots, 9 1,2,…,9 共 9 9 9 个数分成三组&#xff0c;分别组成三个三位数&#xff0c;且使这三个三位数的比例是 A : B : C A:B:C A:B:C&#xff0c;试求出所有满足条件的三个三位…

声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)

借助So-vits我们可以自己训练五花八门的音色模型&#xff0c;然后复刻想要欣赏的任意歌曲&#xff0c;实现点歌自由&#xff0c;但有时候却又总觉得少了点什么&#xff0c;没错&#xff0c;缺少了画面&#xff0c;只闻其声&#xff0c;却不见其人&#xff0c;本次我们让AI川普的…

Linux软件包管理器yum

Linux软件包管理器yum 一.什么是安装包二.关于rese1.windows传到Linux2.linux到windows 三.安装四.卸载五.yum扩展源六.一些好玩的软件1.第一个2.第二个 一.什么是安装包 1.在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 2.但是这样太麻…

阿里云服务器ECS是什么?详细介绍

阿里云服务器ECS是什么&#xff1f;云服务器和传统的物理服务器有什么区别&#xff1f;云服务器有哪些优势&#xff1f;云服务器可以什么&#xff1f;云服务器架构及云服务器包含哪些功能组件&#xff1f;阿里云百科来详细说下什么是云服务器ECS&#xff1a; 目录 阿里云服务…

Python+Selenium教程

PythonSelenium教程 准备工作1.安装selenium2.下载浏览器驱动3.测试执行 元素定位控制浏览器操作控制浏览器窗口大小浏览器后退前进浏览器刷新 Webelement常用方法点击和输入提交其他 鼠标操作键盘操作获取断言信息等待页面加载完成显示等待隐式等待 Selenium是一个用电脑模拟人…