python文件的相关操作和异常处理

  • 文件操作相关

01open和02csv最常用的两种方法

01 open函数操作文件

文件写入

with open('./data.txt',mode='a',encoding='utf8') as f:

    # 文件写入

    f.write("helloworld123\n")

    f.writelines(['xiaoming\n','xiaowang\n'])

    f.write('张三与李四')

文件读取

with open('./data.txt',mode='r',encoding='utf8') as f:

    # 文件读取所有的内容

    # lines = f.read()

    # print(lines)

    lines = f.readlines() # 返回list 数据

    print(lines)

02 csv文件的读写

Csv模块中的reader和writer类可用于读写序列化的数据

写入文件

import csv

with open('./data.csv',mode='w',newline='',encoding='utf8') as file:#这是打开了一个文件

    # 写入文件类

    fw = csv.writer(file)  #写入文件,用了writer

    fw.writerow(["abcdefgh",'username'])   #abcdefgh是写入的序列

    fw.writerow(['helloworld','xiaoming'])

#运行后会生成两行数据

fw.writerows([('hahaha','wawawa'),('xiaoming','xiaowang')])

#Writerows是传入多个数据

读取文件

import csv

with open('./data.csv',mode='r',newline='',encoding='utf8') as file:

    cr = csv.reader(file)

    for line in cr:

        print(line)

方法挺多,常用能用就行

  • python的异常处理

异常事件会在程序执行过程中发生,影响程序的正常执行。

一般情况下,在Python无法正常处理程序时就会发生一个异常。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常处理:

1、try/except语句

try/except语句用来检测try语句块中的错误,让except语句捕获异常信息并处理。

不想在异常发生时结束程序,只需在try里捕获它。

try....except...else的语法

try:

<语句>      #运行别的代码

except <名字>

<语句>       #如果在try部份引发了'name'异常

except <名字>,<数据>:

<语句>        #如果引发了'name'异常,获得附加的数据

else:

<语句>        #如果没有异常发生

#try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

  • 如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
  • 如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
  • 如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

使用except而不带任何异常类型

不带任何异常类型使用except,如下:

try:

    正常的操作

   ......................except:

    发生异常,执行这块代码

   ......................else:

    如果没有异常执行这块代码

使用except而带多种异常类型

使用相同的except语句来处理多个异常信息,如下:

try:

    正常的操作

   ......................except(Exception1[, Exception2[,...ExceptionN]]]):

   发生以上多个异常中的一个,执行这块代码

   ......................else:

    如果没有异常执行这块代码

2、try-finally 语句

try-finally 语句无论是否发生异常都将执行最后的代码。

try:

<语句>

finally:

<语句>    #退出try时总会执行

raise

3、异常的参数

一个异常可以带上参数,可作为输出的异常信息参数。

通过except语句来捕获异常的参数,如下:

try:

    正常的操作

   ......................except ExceptionType, Argument:

    你可以在这输出 Argument 的值...

变量接收的异常值通常包含在异常的语句中。在元组的表单中变量可以接收一个或者多个值。

元组通常包含错误字符串,错误数字,错误位置。

4、触发异常

可以使用raise语句自己触发异常

raise语法格式如下:

raise [Exception [, args [, traceback]]]

语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。

最后一个参数是可选的(很少用),如果存在,是跟踪异常对象。

5、用户自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。

在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。

class Networkerror(RuntimeError):

    def __init__(self, arg):

        self.args = arg

定义以上类后,可触发该异常,如下:

try:

    raise Networkerror("Bad hostname")except Networkerror,e:

    print e.args

看不懂就多实操

视频:python文件处理专题

Up:ABTester

https://www.yuque.com/imhelloworld/alzshs/zywwlo备用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值