python3异常的处理及文件的各种操作

异常处理:是为了避免程序因为一个小问题而导致程序终止
try:
可能出现异常的代码块
except:
出现异常的处理方法
else:
没出错时要执行的代码
函数中如果出现异常,处理之后正常执行,没有处理,异常会抛给调用处,在调用处处理,如果一直到全局作用域,没有处理,则出现异常,程序终止
出现异常以后,所有异常信息会被保存在一个专门的异常对象中,而异常传播时,实际上就是将异常对象抛给了调用处
except后没有跟异常类型,会捕获所有异常,如果写了固定异常类型,则只会捕获该类型异常,except可写多个,同时捕获多种不同的异常,最后一个except一般写except Exception:捕获所有异常
except Exception as 变量名:将捕获到的异常对象赋值给某变量
最后可跟finally:语句:无论有没有出现异常,finally语句都会执行
try是必须的,else有没有都可以,except和finally至少要有一个
raise用于向外部抛出异常,后面可以跟一个异常类,或异常类的实例
raise Exception 抛出异常
raise Exception(‘错误字符串‘) 抛出异常并提示
自定义异常:
class 类名(异常类型):
代码块
抛出自定义异常:
raise 自定义异常类名
io流:
open(文件路径) 打开文件,返回文件对象
with...as 语句:
with open(file_path) as file:
content = file.read()
print(content)
read()可以接收一个size为参数,该参数用来指定要读取的字符的数量,默认值为-1,它会读取文件中的所有字符
文件对象.readline()方法,一次读取一行
文件对象.readline(读到的内容,end=‘‘) 读取一行之后不换行
文件对象.readlines() 用于一行一行的读取,一次性将读取到的内容封装到一个列表中返回
open打开一个文件,可以将文件分为两种类型
1.纯文本文件,使用utf-8等编码编写的文本文档
2.二进制文件(图片,mp3,ppt等等)
open打开文件时,默认是以文本文件的形式打开,但是open默认的编码为None,指定编码:
with open(path,encoding=‘码表‘) as file

文件写入:
write()方法向文件中写入内容,如果操作的是一个文本文件的话,则write()需要传递一个字符串作为参数,写入完成后,会返回写入的字符个数
使用open打开文件时,必须制定打开文件所需要做的操作(读、写、追加),如果不指定操作类型,则默认是读取文件:
r 表示只读
w 表示可写,使用w来写入文件时,如果文件不存在则会创建文件,存在则会删除原有内容,写入新内容
a 表示追加内容,文件不存在会创建文件,存在则会向文件中追加内容
r+ 可读可写,文件不存在报错
w+ 可读可写,文件不存在创建
a+ 可读可写,文件不存在创建
x 新建文件,文件不存在则创建,存在则报错
t 读取文本文件(默认值)
b 读取二进制文本
rb 读取二进制文本
读取文本时,size以字符为单位
读取二进制文件时,size以字节为单位
对象名.tell() 当前读取的位置
对象名.seek(开始读取的位置) 修改当前读取的位置
seek两个参数:
1.要切换到的位置
2.计算位置方式
可选值:
0.从头计算,默认值
1.从当前位置计算
2.从最后位置开始计算
中文:三个字节=1个字符
os模块:
os.listdir() 获取当前目录列表
os.getcwd() 获取当前所在目录
os.chdir(目录) 切换目录
os.mkdir(目录名) 创建目录
os.rmdir(目录名) 删除目录
os.remove(‘文件名‘) 删除文件
os.rename(‘旧名字‘,‘新名字‘) 重命名 也可以剪切文件

原文地址:https://blog.51cto.com/3945465/2385980

时间: 2024-11-18 11:17:47

python3异常的处理及文件的各种操作的相关文章

python reload(sys)找不到,name 'reload' is not defined和Python3异常-AttributeError: module 'sys' has no att

基于python3.6.1版本,在一个.py文件中,加入这3行:import requests, re, sysreload(sys)sys.setdefaultencoding("utf-8") 出现这样的错误:sys.setdefaultencoding("utf-8")AttributeError: module 'sys' has no attribute 'setdefaultencoding' 原因分析:Python3字符串默认编码unicode, 所以

JAVA之IO技术-将java程序的异常信息保存在文件中

package ioTest.io2; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.Properties; /* * 将应用程序的异常信息输出到指定的log文件中 */ public class ExceptionToFile { public static void main(String[] args) throws FileNotFoundException { int

python3 简单实现从csv文件中读取内容,并对内容进行分类统计

新手python刚刚上路,在实际工作中遇到如题所示的问题,尝试使用python3简单实现如下,欢迎高手前来优化 import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() with open("dk0519_1.csv","r",encoding="utf-8") as csv_file: #读取csv文件,返回的是迭代类型 read = csv.reader(csv

python3 异常

异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 Overfl

C#错误异常日志记录到文件

当我们将网站布署到线上之后,为了实时了解网站的运行情况,如是否有错误页面.网站运行速度.是否有攻击等.那么我们就很有必要为网站加上错误与异常记录到日志文件,这样就可以随时查看网站的线上运行情况,另有一个好处是当网站有运行错误页面时,根据错误日志我们可以快速到定位到错误行进行排查原因.解决问题,这个是对于运行在线上而不能调试的网站的一个非常有必要的功能. 具体实现方法: 在全局文件Global.asax.cs中添加Application_Error的方法.只要当程序有错误时程序就会自动执行该方法,

Python3 从零单排2_文件读写

文件操作其实和我们日常处理文件一样的,先打开文件,然后操作,最后保存关闭,在python里就是这三步骤: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件 文件操作有以下三个模式: r:读模式[可读: 不可写,不存在则报错] w:写模式[不可读:不存在则创建:存在则删除内容] //注意:只要写了w模式,不论后面跟的啥,文件不存在则创建,存在则清空文件内容,然后再写. a:追加模式[不可读: 不存在则创建:存在则只追加内容]//注意:追加内容是在最后的指针位

MFC常用的字符串、文件、目录操作(双11版本)

修改日志: 1.增加了list容器存储: 2.修改了IsFile 和 IsDir的实现,使区别于IfExistFile和IfExistDir; 3.修改了部分函数的名称: 4.其他细节修改: 首先是头文件: /* ******* StrDirFile.h ********** ********* 字符串.文件.目录操作函数声明 ********** */ /* author: autumoon */ #ifndef _STR_DIR_FILE_ #define _STR_DIR_FILE_ #p

Shell命令-文件及目录操作之file、md5sum

文件及目录操作 - file.md5sum 1. file:显示文件的类型 file命令的功能说明 用于辨识文件类型.通过 file 指令,我们得以辨识该文件的类型. file命令的语法格式 file [-bchiklLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname]file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...] file命令的选项说明 file

进行大文件的分片操作(split),合并(cat/copy)

进行大文件的分片操作(split),合并(cat/copy) 由于工作的需要,当我们的系统产生了超过内存的日志文件时,当我们使用工具对文件进行读取数据时,会直接报异常,无法进行读取.所以我们要前置的对文件进行分片操作.split(linux命令)在windows中最好前置下载个cmder进行操作. 进入cmder,切换到需要分割的文件地址 可以看到这个文件有1.8g;这个文件如果要直接使用文件打开的话,直接就会报错. 使用split 命令,按照每个文件51200kb的大小进行解析,默认前缀为"w