详解python中的异常和文件读写

Python异常

1、python异常的完整语法

try:
  # 提示用户输入一个整数
  num = int(input("输入一个整数:"))
  # 使用 8 除以用户输入的整数并且输出
  result = 8 / num
  print(result)
except ValueError:
  print("请输入正确的整数!")
except Exception as result:
  print("未知错误:%s" % result)
else:
  print("尝试成功")
finally:
  print("无论是否出现错误都会执行的代码!")
print("-" * 50)

2、python异常的传递性

当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方,如果传递到主程序,仍然没有异常处理,程序才会被终止。

# 异常的传递性
def demo1():
  return int(input("输入整数:"))

def demo2():
  return demo1()
# 利用异常的传递性,在主程序捕获异常

try:
  print(demo2())
except Exception as result:
  print("未知错误:%s" % result)

3、python主动抛出异常

def input_password():
  # 1. 提示用户输入密码
  pwd = input("请输入密码:")
  # 2. 判断密码长度 >= 8,返回用户输入的密码
  if len(pwd) >= 8:
    return pwd
  # 3. 如果 < 8 主动抛出异常
  print("主动抛出异常!")
  # 1> 创建异常对象 - 可以使用错误信息字符串作为参数
  ex = Exception("密码长度不够!")
  # 2> 主动抛出异常
  raise ex

# 提示用户输入密码
try:
  print(input_password())
except Exception as result:
  print(result)

Python文件读写

1、读取文件后文件指针会改变

# 1. 打开文件
file = open("test.py")
# 2. 读取文件内容
text = file.read()
print(text)
print(len(text))
print("-" * 50)
text = file.read()
print(text)
print(len(text))
# 3. 关闭文件
file.close()

2、复制小文件写法

# 1. 打开
file_read = open("test.py")
file_write = open("test[复件].py", "w")
# 2. 读、写
text = file_read.read()
file_write.write(text)
# 3. 关闭
file_read.close()
file_write.close()

3、复制大文件写法

# 1. 打开
file_read = open("test.py")
file_write = open("test[复件].py", "w")
# 2. 读、写
while True:
  # 读取一行内容
  text = file_read.readline()
  # 判断是否读取到内容
  if not text:
    break
  file_write.write(text)

# 3. 关闭
file_read.close()
file_write.close()

以上就是详解python中的异常和文件读写的详细内容,更多关于python 异常和文件读写的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python pip install之SSL异常处理操作

    异常内容: C:\Users\ccwant>pip install requests Collecting requests Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

  • python 自定义异常和主动抛出异常(raise)的操作

    前言 有时候python自带异常不够用,如同java,python也可以自定义异常,并且可以手动抛出.注意,自定义异常只能由自己抛出.python解释器是不知道用户自定义异常是什么鬼的. raise语句 主动抛出异常. 格式: 主动抛出异常终止程序 raise 异常名称('异常描述') raise RuntimeError('testError') 主动抛出这个异常,并加以解释. 自定义异常 python的异常分为两种. 1.内建异常,就是python自己定义的异常. 2.不够用,用户自定义异常

  • Python 获取异常(Exception)信息的几种方法

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种 Python 中获取异常信息的方法,这里获取异常(Exception)信息采用 try-except- 程序结构. 如下所示: try: print(x) except Exception as e: print(e) 1. str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如: try: print(x) except Exception as e: print(str(e)) 打印结

  • Python内存映射文件读写方式

    我就废话不多说了,还是直接看代码吧! import os import time import mmap filename = 'test.txt' #如果不存在,创建. if not os.path.exists(filename): open(filename, 'w') print(os.path.isdir(filename)) if os.path.isfile(filename): print(time.ctime(os.path.getctime(filename))) fd =

  • Python同时处理多个异常的方法

    问题 你有一个代码片段可能会抛出多个不同的异常,怎样才能不创建大量重复代码就能处理所有的可能异常呢? 解决方案 如果你可以用单个代码块处理不同的异常,可以将它们放入一个元组中,如下所示: try: client_obj.get_url(url) except (URLError, ValueError, SocketTimeout): client_obj.remove_url(url) 在这个例子中,元祖中任何一个异常发生时都会执行 remove_url() 方法. 如果你想对其中某个异常进行

  • Python用户自定义异常的实现

    实际开发中,有时候系统提供的异常类型不能满足开发的需求.这时候你可以通过创建一个新的异常类来拥有自己的异常.异常类继承自 Exception 类,可以直接继承,或者间接继承. 常见的内置异常有: 1.自定义异常类型 #1.用户自定义异常类型,只要该类继承了Exception类即可,至于类的主题内容用户自定义,可参考官方异常类 class TooLongExceptin(Exception): "this is user's Exception for check the length of na

  • 使用python实现ftp的文件读写方法

    ftp登陆连接 from ftplib import FTP #加载ftp模块 ftp=FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp.connect("IP","port") #连接的ftp sever和端口 ftp.login("user","password") #连接的用户名,密码 print ftp.getwelcome() #打印出欢迎信息 ftp.cmd

  • Python读写csv文件流程及异常解决

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据.CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符.通常,所有记录都有完全相同的字段序列. 特点 读取出的数据一般为字符类型,如果是数字需要人为转换为数字 以行为单位读取数据 列之间

  • python文件读写代码实例

    实验室导师又有任务,从一个.dat文件中读取波形数据,通过一个自编码网络进行异常检测.可是对我这种小白来说真的艰难.从最基础的文件读写开始吧. 先说数据,是一个int16型的数组.说是数组,但是读取也并不简单.众所周知,数据在计算机中是用二进制的形式储存的.int16型有符号整数.16位,16bit,也就是两个字节.那么自然而然的想到,读取两个字节(bytes)的数据(也就是16bit),然后把它转化成int16的整型(即十进制整型).数据就变得可以处理了. 先放一个不同位数的整型数据范围吧,经

  • 使用Python文件读写,自定义分隔符(custom delimiter)

    众所周知,python文件读取文件的时候所支持的newlines(即换行符),是指定的.这一点不管是从python的doucuments上还是在python的源码中(作者是参考了python的io版本,并没有阅读C版本),都可以看出来: if newline is not None and not isinstance(newline, str): raise TypeError("illegal newline type: %r" % (type(newline),)) if new

  • Python文件读写w+和r+区别解析

    其实r 是只读,只能读不能写,这是很明确的,但是r+是可读写,变成r+后还没太明白到底加了什么,还是照样写不了,有没有这样的体验呢,如下代码,只读时 f = open("test.txt", 'r', encoding="utf-8") # 文件句柄 f.write("we are heros\n") data = f.read() print(data, type(data)) f.close() 这样的话报错是明显的:io.Unsupport

  • python+tifffile之tiff文件读写方式

    背景 使用python操作一批同样分辨率的图片,合并为tiff格式的文件. 由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好. 通过搜索发现了两个比较有用的包:TiffCapture和tifffile.两者都可用pip安装. 其中前者主要用于读取tiff文件,后者可读可写.最终选择tifffile来合成tiff图片文件. 安装tifffile pip install tifffile 原理及代码 我的图片是8 bit灰度图. 每次读取之后,先升维: new_gray = g

随机推荐