• 文件操作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)
     
  • 相关阅读:
    牛客练习赛51 D题
    Educational Codeforces Round 72 (Rated for Div. 2) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Educational Codeforces Round 72 (Rated for Div. 2) B题
    Educational Codeforces Round 72 (Rated for Div. 2) A题
    《DSP using MATLAB》Problem 7.2
    《DSP using MATLAB》Problem 7.1
    《DSP using MATLAB》Problem 6.24
  • 原文地址:https://www.cnblogs.com/msj513/p/9682766.html
Copyright © 2020-2023  润新知