1.17 I/O文件的读写操作(with open方式打开文件)

with open打开单文件与多文件方法
博客介绍了使用with open方式打开文件,其无需手动关闭文件。详细阐述了with open打开单个文件的读取、写入及读操作,还介绍了打开多个文件的两种方式,即嵌套打开和并行打开。

通过open方法打开文件,就需要在不用时进行close(),即:关闭文件,有另外一种文件打开方式,它无需进行关闭文件,它会自动在你不使用文件的时候直接关闭文件,那就是 : with open (file_name,[,access_mode]) as f:
一 . with open 打开单个文件:

1. 读取单个文件内容:
在这里插入图片描述

2. 单文件的写入以及读操作

**with open(r"D:\APP_Workplaces\AutoTest_Learn\hello_01.txt", "r+", encoding="UTF-8") as f:
    f.write("12233\n23445\n445566")  # 写入内容
    f.flush()    # 文件内容刷新,否则继续查找,则内容为[]
    f.seek(0)    # 指针需要放在0,否则读取的将会是空字符串
    for line in f.readlines():  # 遍历行
        print(line)**

在这里插入图片描述

*注意: 当进行了写操作之后,需要进行flush()刷新,否则readlines()=[] ,且进行写操作之后除了刷新,还需要将指针指向初始位置,即:seek(0),否则 line=空字符*

二. with open打开多个文件:
1. with open嵌套打开多个文件:

with open(r"D:\APP_Workplaces\AutoTest_Learn\hello_01.txt", "w+", encoding="UTF-8") as f1:
    with open(r"D:\APP_Workplaces\AutoTest_Learn\hello.txt", "w+", encoding="UTF-8") as f2:
        f2.write("f1\nf1")
        f2.flush()  # 文件内容刷新,否则继续查找,则内容为[]
        f2.seek(0)  # 指针需要放在0,否则读取的将会是空字符串
        for line in f2.readlines():  # 遍历行
            print(line)
    f1.write("f2\nf2\nf2")  # 写入内容
    f1.flush()    # 文件内容刷新,否则继续查找,则内容为[]
    f1.seek(0)    # 指针需要放在0,否则读取的将会是空字符串
    for line in f1.readlines():  # 遍历行
        print(line)

在这里插入图片描述
2. with open,open并行打开多个文件:

with open(r"D:\APP_Workplaces\AutoTest_Learn\hello_01.txt", "w+", encoding="UTF-8") as f1,open(r"D:\APP_Workplaces\AutoTest_Learn\hello.txt", "w+", encoding="UTF-8") as f2:
    f2.write("f1\nf1")
    f2.flush()  # 文件内容刷新,否则继续查找,则内容为[]
    f2.seek(0)  # 指针需要放在0,否则读取的将会是空字符串
    for line in f2.readlines():  # 遍历行
        print(line)
    f1.write("f2\nf2\nf2")  # 写入内容
    f1.flush()    # 文件内容刷新,否则继续查找,则内容为[]
    f1.seek(0)    # 指针需要放在0,否则读取的将会是空字符串
    for line in f1.readlines():  # 遍历行
        print(line)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值