• Python-文件操作—_19


    1,文件操作
    模特主妇护士老师.txt
    1,文件路径:d:模特主妇护士老师.txt
    2,编码方式:utf-8 gbk 。。。。
    3,操作方式:只读,只写,追加,读写,写读.....
    以什么编码方式储存的文件,就以什么编码打开进行操作。


    只读:r
    rb
    f = open('模特主妇护士班主任',mode='r',encoding='utf-8')
    content = f.read()
    print(content,type(content))
    f.close()

    # f = open('模特主妇护士班主任',mode='rb',)
    # content = f.read()
    # print(content)
    # f.close()

    r+ 读写
    r+b 读写(以bytes类型)
    # f = open('log',mode='r+',encoding='utf-8')
    # print(f.read())
    # f.write('大猛,小孟')
    # f.close()

    f = open('log',mode='r+b')
    print(f.read())
    f.write('大猛,小孟'.encode('utf-8'))
    f.close()

    只写:w
    wb
    # 先将源文件的内容全部清除,在写。
    # f = open('log',mode='w',encoding='utf-8')
    # f.write('附近看到类似纠纷')
    # f.close()

    f = open('log',mode='wb')
    f.write('附近看到类似纠纷'.encode('utf-8'))
    f.close()
    w+
    # f = open('log',mode='w+',encoding='utf-8')
    # f.write('aaa')
    # f.seek(0)
    # print(f.read())
    # f.close()
    w+b
    .......


    追加
    # f = open('log',mode='a',encoding='utf-8')
    # f.write('佳琪')
    # f.close()

    # f = open('log',mode='ab')
    # f.write('佳琪'.encode('utf-8'))
    # f.close()

    一、Python文件读写的几种模式:

    r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢?

    1、文件使用方式标识

    ‘r’:默认值,表示从文件读取数据。
    ‘w’:表示要向文件写入数据,并截断以前的内容
    ‘a’:表示要向文件写入数据,添加到当前内容尾部
    ‘r+’:表示对文件进行可读写操作(删除以前的所有数据)
    ‘r+a’:表示对文件可进行读写操作(添加到当前文件尾部)
    ‘b’:表示要读写二进制数据

    #绝对路径
    f = open('G:python全栈day8模特主妇护士班主任.txt',mode='r',encoding='UTF-8')
    content = f.read()
    print(content)
    f.close()
    
    # bytes ---->str
    f = open('模特主妇护士班主任.txt',mode='r',encoding='utf-8')
    content = f.read()
    f.write('fjsdlk')
    f.close()
    
    f = open('模特主妇护士班主任.txt',mode='rb',)
    content = f.read()
    print(content)
    f.close()
    
    f = open('log',mode='r+',encoding='utf-8')
    print(f.read())
    f.close()
    
    f = open('log',mode='r+b')
    print(f.read())
    f.write('大猛,小孟'.encode('utf-8'))
    f.close()
    
    
    
    #对于w:没有此文件就会创建文件
    f = open('log',mode='w',encoding='utf-8')
    f.write('骑兵步兵')
    f.close()
    
    # 先将源文件的内容全部清除,在写。
    f = open('log',mode='w',encoding='utf-8')
    f.write('附近看到类似纠纷')
    f.close()
    
    #
    f = open('log',mode='w+',encoding='utf-8')
    f.write('aaa')
    f.seek(0)
    print(f.read())
    f.close()
    
    
    f = open('log',mode='wb', encoding='utf-8')
    f.write('附近看到类似纠纷'.encode('utf-8'))
    f.close()
    ValueError: binary mode doesn't take an encoding argument
    
    f = open('log',mode='wb',encoding('utf-8'))
    f.write('附近看到类似纠纷'.encode('utf-8'))
    f.close()
    SyntaxError: positional argument follows keyword argument
    
    f = open('log',mode='wb')
    f.write('附近看到类似纠纷'.encoding('utf-8'))
    f.close()
    AttributeError: 'str' object has no attribute 'encoding'
    
    f = open('log',mode='wb')
    f.write('附近看到类似纠纷'.encode('utf-8'))
    f.close()
    
    f = open('log',mode='a',encoding='utf-8')
    f.write('佳琪')
    f.close()
    
    
    f = open('log',mode='ab')
    f.write('佳琪'.encode('utf-8'))
    f.close()
    
    f = open('log',mode='ab')
    f.write('佳琪')
    f.close()
    TypeError: a bytes-like object is required, not 'str'
    f = open('log',mode='a+',encoding='utf-8')
    f.write('佳琪')
    f.seek(0)
    print(f.read())
    f.close()
    
    
    f = open('log',mode='ab')
    f.write('佳琪'.encode('utf-8'))
    f.close()
    #功能详解
    
    obj = open('log',mode='r+',encoding='utf-8')
    content = f.read(3)  # 读出来的都是字符
    f.seek(3)  # 是按照字节定光标的位置
    f.tell() 告诉你光标的位置
    print(f.tell())
    content = f.read()
    print(content)
    f.tell()
    f.readable()  # 是否刻度
    line = f.readline()  # 一行一行的读
    line = f.readlines()  # 每一行当成列表中的一个元素,添加到list中
    f.truncate(4)
    for line in f:
        print(line)
    f.close()
    f = open('log',mode='a+',encoding='utf-8')
    f.write('佳琪')
    count = f.tell()
    f.seek(count-9) #调节光标
    print(f.read(2))
    f.close()
    
    with open('log',mode='r+',encoding='utf-8') as f,
            open('log',mode='w+',encoding='utf-8') as f1:  #文件自动关闭 可以同时打开多个
    
    
  • 相关阅读:
    POJ 2823 Sliding Window & Luogu P1886 滑动窗口
    Luogu P2970 [USACO09DEC]自私的放牧
    Luogu P2922 秘密消息
    Luogu P3353 在你窗外闪耀的星星
    Luogu P2580 于是他错误的点名开始了
    Floyd详解
    高精度模板
    51Nod P1100 斜率最大
    洛谷——P1025 数的划分
    洛谷——P1063 能量项链
  • 原文地址:https://www.cnblogs.com/LXL616/p/10644521.html
Copyright © 2020-2023  润新知