zoukankan      html  css  js  c++  java
  • 文件操作

    一 读

    1. r模式 只读

    f = open('t1',mode = 'r',encoding = 'utf-8')

    f -- 文件句柄 所有对文件的操作都是操作文件句柄

    第一个内容是文件的路径,必须是字符串)

    第二个内容(mode)是对这个文件的操作方式 可以直接写'r'

    第三个内容(encoding)是这个文件的编码集

    f = open('t1',mode = 'r',encoding = 'utf-8')
    print(f.read())
    f.close()  # 打开文件最后要关闭文件
    
    with open('t1',mode = 'r',encoding = 'utf-8')as f:     #上下文管理,不用后自动关闭   as后是变量名
        print(f.read())
    
    1. f.read() 一次性全部读取 ()里放数字,按照字符读取

      mode = 'r' read里的内容就是表示读取的字符数量

    2. f.readline() 只读一行,但是有个 换行

      mode = 'r' readline里的内容就是表示这一行读取的字符数量

    3. f.readlines() 读取一行一行的,存放在一个列表里

    2. rb模式 读取字节

    f = open('t1',mode = 'rb')
    f = open('E:Python学习笔记Python学习手册',mode = 'rb')
    
    f = open('E:\Python学习笔记\Python学习手册',mode = 'rb')
    
    f = open(r'E:Python学习笔记Python学习手册',mode = 'rb') #   r 和\都是转义
    print(f.read())
    f.close()
    

    绝对路径:E:Python学习笔记Python学习手册

    相对路径(推荐路径):相对本文件的路径

    ..   返回上一级
    

    repr() 显示数据的原生态

    二 写

    1. w 模式 覆盖写 在写之前先把之前的内容清空

    f = open('t1',mode = 'w',encoding = 'utf-8')
    f.write('我爱你')
    f.flush()   # 刷新,防止遗漏
    f.close()
    

    w模式,如果文件不存在就新建一个

    2. wb 模式

    f = open('t1',mode = 'rb')
    f1 = open('t1',mode = 'wb')
    f1.write(f.read())
    f.close()
    

    3. a 模式 追加

    f = open('t1',mode = 'a',encoding = 'utf-8')
    f.write('我爱你')
    f.close()
    

    文件最后添加内容

    w 只写,没有读的功能

    三 可读可写

    1. r+ 读+写 最常用

    f = open('t1',mode = 'r+',encoding = 'utf-8')
    print(f.read())
    f.write('我爱你')
    f.close()
    

    先读后写

    2. w+ 写+读

    f = open('t1',mode = 'w+',encoding = 'utf-8')
    f.write('我爱你')   #写完之后光标在最后
    f.seek(0)    #移动光标到头
    print(f.read())
    f.close()
    

    3. a+ 写+读 光标永远在最后

    f = open('t1',mode = 'a+',encoding = 'utf-8')
    f.seek(0)    #移动光标到头
    f.write('我爱你')
    print(f.read())
    f.close()
    

    四 其他操作

    1. f.tell() 查看光标

    with open('t1','r',encoding = 'utf-8')as f:     
        print(f.read())
        print(f.tell())  #查看光标 数的是字节
    

    2. f.seek() 移动光标

    ()里为单数字,按字节移动

    (0)为文件头部

    ()里为双数字

    (0,0)为文件头部

    (0,1)为当前位子

    (0,2)为文件尾部

    3. f.truncate() 截取 ()里为字节数

    with open('t1','r',encoding = 'utf-8')as f:     
        print(f.read(3))
        f.truncate(9)    #截取,指定字节之后的内容清空
    

    4. 文件重命名

    import os
    os.rename('t1','t2')  #吧t1改成t2
    

    5. 更改文件内容

    with open('t1','r',encoding = 'utf-8')as f,
    open('t2','a',encoding = 'utf-8')as f1:#创建一个新文件(表示一行写不下换行)     
        msg = f.read()
        msg = msg.replace('1','2')
        f1.write(msg)
    import os
    os.remove('t1')
    os.rename('t2','t1')
    

    先创建一个新文件,然后读取原文件,更改内容写到新文件,删除原文件,后给新文件重命名

    with open('t1','r',encoding = 'utf-8')as f,
    open('t2','a',encoding = 'utf-8')as f1:     
        for i in f:    #一行一行读取,相当于readline()
        i = i.strip().replace('1','2')
        f1.write(i)
    import os
    os.remove('t1')
    os.rename('t2','t1')
    

    当文件很大时,一行一行读取然后更改

  • 相关阅读:
    领导力包括哪些能力?如何提升领导力?
    管理者如何让员工服从?
    常用查询语句
    BZOJ2190 SDOI2008 仪仗队 gcd,欧拉函数
    使用python来操作redis用法详解
    int指令
    浏览器打开exe文件
    feiQ发送信息
    【转】Notepad++ 中文查找(中文搜索)问题解决方法
    【转】Java基本概念:集合类 List/Set/Map...的区别
  • 原文地址:https://www.cnblogs.com/lav3nder/p/11801416.html
Copyright © 2011-2022 走看看