文件操作

文件操作

  • 文件路径
    • 绝对路径 明确所有路径盘符
    • 相对路径 相对当前运行程序路径
  • 编码方式 utf-8gbk……
    • 以什么编码储存文件就要以什么编码打开文件,否则报错
  • 操作方式
    • 'r' 只读
      • 'rb' 二进制读取
    • 'w' 只写--无文件自动创建,有文件则覆盖
      • 'wb' 二进制写入

              f = open('文件.txt', 'wb')
              content = f.write('这是写入的数据'.encode('utf-8'))
              f.close()
              #结果,在当前路径下生成二进制文件
        
    • 'a' 追加
      • 'ab' 以bytes类型追加
    • 'r+' 读写-最常用的
      • 先读后写,后方插入
      • 先写后读,从头覆盖
        • 'r+b' 二进制读写
    • 'w+' 写读
      • 覆盖源文件了

功能详解

  • f.read(n) 从光标处读取n个字符
  • f.readable() 是否可读
  • f.readline() 一行一行的读
  • f.readlines() 把每一行的内容变成列表的一个元素
  • f.seek(位置) 调节光标至字节位置后
    • utf-8 中文3字节,英文一个字母一个字节
  • f.tell() 返回光标所在位置
    f.seek(f.tell()-n) 技巧方法
  • f.truncate() 截取字符串,将当前光标后的所有内容删除
  • for循环查看 文件的每一行输出
  • with open('path', mode='r+', encoding=None) as f:
    • 这种写法没有close()
    • 可以同时打开多个
    • 缩紧写

修改文件(补充)读取旧文件>>替换内容>>写进新文件>>删除旧文件>>重命名新文件与旧文件同名

        with open('file1.txt', 'r', 'utf-8') as f1, open('file2.bak', 'w', 'utf-8') as f2:
            for line in f1:
                if '旧内容' in line:
                    line = line.repleace('旧内容', '新内容')  #假设将旧文件内容替换
            f2.write(line)
        #引用.os模块完成文件删除和重命名
        os.remove('file1.txt')
        os.rename('file2.bak', 'file1,txt')
        #完成文件的修改
原文地址:https://www.cnblogs.com/liliudong/p/9572735.html