Python笔记 -- 文件和异常

1、文件

1.1、with关键字

with关键字用于自动管理资源
使用with可以让python在合适的时候释放资源
python会将文本解读为字符串

# -*- encoding:utf-8 -*-
# 如果中文运行不了加上上面那个注释

# 使用with后不需要调用close去关闭文件
# ./表示在当前目录
# 使用.\\也表示当前目录,第一个\表示转义
# with open('./text.txt') as file_obj:
# with open('.\\text.txt') as file_obj:
with open('text.txt') as file_obj:
	print(file_obj)
	msg = file_obj.read()
print(msg)

在这里插入图片描述

在这里插入图片描述

1.2、逐行读取

无论哪种方式都会改变 file_obj
所以后面那个什么也没读到

with open('text.txt') as file_obj:
    # 方式1
    lines = file_obj.readlines()
    print(lines)
    # 方式2
    for line in file_obj:
        # strip()用于去除空行
        print(line.strip())

在这里插入图片描述

1.3、写入模式

python只会将字符串写入文件中
若要写入数字,需将数字转化成字符串

def print_file(filename):
    with open(filename, 'r') as file_r:
        for info in file_r:
            print(info)


def write_file(filename, mode, text):
    with open(filename, mode) as file_w:
        file_w.write(text)


file_name = 'text.txt'
write_file(file_name, 'w', 'abcdef')
print_file(file_name)
write_file(file_name, 'w', '123')
print_file(file_name)

open的第二个实参mode:
在这里插入图片描述

  • r 只读
  • w 只写
    文件不存在:创建新文件
    文件存在:删除文件原有内容,再写入
    可以理解为就是创建一个新文件
    在这里插入图片描述
  • a 只写
    以追加的方式写入到末尾

在这里插入图片描述

  • r+ 可读可写
    在这里插入图片描述
    其他的就不一一赘述了

1.4、多行写入

filename = 'text.txt'
with open(filename, 'w') as file_w:
    file_w.write(str(123))
    file_w.write(str(456) + '\n')
    file_w.write(str(789))

with open(filename, 'r') as file_r:
    for info in file_r:
        print(info, end='')

在这里插入图片描述

2、异常

产生异常后,python会创建一个异常对象,如果编写了处理该异常的代码,程序将继续运行

2.1、try-except-else

当将0作为除数时,会产生以下错误
在这里插入图片描述

用try-except包裹后:

try:
    ret = 9 / 0
except ZeroDivisionError:
    print("0不能作为除数")
else:
    print(ret)

在这里插入图片描述
如果try中的内容运行没问题,python将会跳过except,执行else中的代码,并继续运行后面的内容,否则寻找对应的except并运行其中的代码,然后再执行后面的内容。一个try可对应多个except

2.2、pass

当捕获到异常但不想处理时,可用pass

try:
    ret = 9 / 0
except ZeroDivisionError:
    pass
else:
    print(ret)

在这里插入图片描述

笔记来源:《Python编程 从入门到实践》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值