文件操作part2

打开文件的三种纯净模式r,w,a

控制操作文件内容格式的两种模式:t(默认的) b

t/b模式只能r、w、a连用,不能单独使用。

t模式:文本模式

  1、读写文件都是以字符串为单位的

  2、只能针对文本文件

  3、必须指定encoding参数

b二进制模式:

  1.读写文件都是以bytes/二进制为单位

  2.可以正对所有文件

  3.一定不能指定encoding参数

打开文件r模式详解

  1.r只读模式;当文件不存在的话直接报错,文件存在文件内的指针直接跳到文件开头

with open(r'wdb.txt',mode='rt',encoding='utf-8') as f:
    data=f.readline(7)#从文件开头开始读,数字参数的读取当前行的字数,截取相应数字字符串,若超出的字数,直接读当前行数
    print(data)
    print(f.readline())#从上一个指针开始读,读取

例子,用户认证功能(简单):

name = input('请输入用户名:').strip()
pwd = input('请输入密码').strip()
with open(r'db.txt',mode='rt',encoding='utf-8') as f:
    for line in f:#循环读取单行内容,直到结束为止
        u,p = line.strip('
').split(':')#根据读取内容,整理出需要的内容
        if name ==u and pwd == p:#当用户名与密码都相同
            print('登陆成功')
            break
    else:#当for没有被break,则执行
        print('用户名不存在')

w只写模式:

  1.当文件不存在的情况下创建新的文件,当文件存在时,则创建新的文件将源文件覆盖。

  文件指针依旧在开头。

with open('b.txt',mode='wt',encoding='utf-8') as f:
    print(f.writable())
    print(f.readable())
    f.write('你好
')
    f.write('我好
') # 强调:在文件不关闭的清空下,后写的内容一定跟着前写内容的后面
    f.write('大家好
')
    f.write('111
222
333
')
a只追加写模式: 在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾
注册实例
name = input('请输入你的用户名:').strip()
pwd = input('请输入密码:').strip()
with open(r'db.txt',mode='at',encoding='utf-8') as f:
    f.write('%s:%s
'%(name,pwd))

上述模式都是t模式下操作

b的情况下的操作:都是以二进制单位,可以读取任意文件

拷贝工具(简单):

src_file=input('源文件路径: ').strip()
dst_file=input('目标文件路径: ').strip()
with open(r'%s' %src_file,mode='rb') as read_f,open(r'%s' %dst_file,mode='wb') as write_f:
    for line in read_f:
        # print(line)
        write_f.write(line)
 
原文地址:https://www.cnblogs.com/msj513/p/9682766.html