python全栈——文件操作模式详解

以t模式为基础进行内存操作

1、r(默认的操作模式):只读模式,当文件不存在时报错,当文件存在时文件指针跳到开始位置

with open('a.txt', mode='rt', encoding='utf-8') as f1:
    print('第一次读'.center(50, '*'))
    res1 = f1.read()  # 把所有内容从硬盘读入内存
    print(res1)
    # with open('c.txt', mode='rt', encoding='utf-8') as f1:
    print('第二次读'.center(50, '*'))
    res2 = f1.read()
    print(res2)
    
# 案例:从文件中读取账号密码

inp_username = input('please input your name: ').strip()
inp_password = input('please input your password: ').strip()
# 验证
with open('user.txt', mode='rt', encoding='utf-8') as f:
    for line in f:
        username, password = line.strip().split(':')
        if inp_username == username and inp_password == password:
            print('login successful')
            break
    else:
        print('username or password error')

use.txt的内容:
potato:123
lili:111
zhangsan:222

2、w;只写模式,当文件不存在时,会创建空文件,当文件存在时会清空文件,指针位于开始位置

with open('d.txt', mode='wt', encoding='utf-8') as f:
    # f.read()  # 报错,不可读
    f.write('牛牛牛\n')  # 不是覆盖,是清空再写入(慎用)

强调1: 在以w模式打开文件没有关闭的情况下,新写的内容总是跟着旧内容之后 如果重新以w模式打开文件,则会清空内容

3、a:只追加写,在文件不存在时会创建空文档,在文件存在时,文件指针会直接跳到末尾

with open('e.txt', mode='at', encoding='utf-8') as f:
    # f.read()  # 报错,不可读
    f.write('牛牛牛1\n')  #
    f.write('牛牛牛2\n')
    f.write('牛牛牛3\n')

强调 w 模式与 a 模式的异同:

相同点:在打开的文件不关闭的情况下,连续的写入,新写的内容总会跟在前写的内容之后
不同点:以 a 模式重新打开文件,不会清空原文件内容,会将文件指针直接移动到文件末尾,新写的内容永远写在最后

# 注册功能
name = input('your name: ')
pwd = input('your password: ')
with open('db.txt', mode='at', encoding='utf-8') as f:
    f.write('{}:{}\n'.format(name, pwd))

了解:+模式(不能单独使用,必须搭配r、w、a)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值