zoukankan      html  css  js  c++  java
  • Python之路Day08

    文件操作

    • open() -- 打开

      • open通过Python控制操作系统打开文件

      • f=open('文件路径',mode='r',encoding='utf-8')

        • mode -- 不写就默认是r

      • f -- 文件句柄

    • file -- 文件位置

    • encoding -- 文件编码

    r

    • print(f.read()) -- 全部读取

      • 文件只能读取一次

      • print(f.read(3)) -- 按照字符读取(读不到最后一位)

      • f.readline() -- 读取一行,默认尾部有一个

      • f.readlines() -- 一行一行读取,全部储存在列表中

    • 路径转义:

      • 都改成"\"

      • 在路径开头加r

    • 路径:

      • 绝对路径:从磁盘(C盘)开始查找

      • 相对路径:相对于某个文件进行查找

    rb
    • f=open('文件路径',mode='rb')

      • 字节操作时,不能指定encoding编码

      • f.read()

      • f.read(3) -- 按照字节读取

      • f.readline()

      • f.readlines()

    • r 和rb的区别:

      1. r需要指定encoding,rb不需要

      2. r中的read(3)按照字符读取,rb模式中按照字节读取

    • read 和 readlines 如果文件较大时,会出现内存溢出

      • 解决方案:文件较大时使用for循环

        • f=open('文件路径',mode='r',encoding='utf-8')
          for i in f:
             print(i.strip())   #面试题

    w

    • ff=open('a1',mode='w',encoding='utf-8')
      ff.write('123')  #写的内容必须是字符串
      • 有文件就用当前文件,没有文件就创建一个文件

      • 写的内容必须是字符串

    • w操作:-- 清空写(写的是文本)

      • 先清空文件(打开文件时清空)

      • 写入内容

    wb
    • 清空写(写字节)

    • ff=open('a1',mode='w')

    a

    • 追加写

    • 有文件就用用当前文件,没有就创建一个文件

    ab
    • 追加写字节

    读写+操作

    r+ 读写

    • f=open('b1',mode='r+',encoding='utf-8')

    • f=open('b1',mode='r+',encoding='utf-8')
      f.write('今天是周一')
      print(f.read())    #坑,只能先读后写

    w+ 写读

    • f.seek() -- 移动光标

      • f=open('b1',mode='r+',encoding='utf-8')
        f.write('今天是周一')
        f.seek(0)
        print(f.read())

    a+ 追加写、读

    • 坑:永远在末尾加,移动光标写内容还是在末尾追加

      • f=open('b1',mode='r+',encoding='utf-8')
        f.write('今天是周一')
        f.seek(0)
        f.write('啊啊啊啊')
        print(f.read())

    其他操作

    • f.seek() -- 移动光标(光标是按照字节移动)

      • seek(0,0) -- 移动光标到文件头部

      • seek(0,1) -- 移动光标到当前位置

      • seek(0,2) -- 移动光标到文件末尾

    • f.tell() -- 查看光标(按照字节计算)

    • 修改文件:

      • import os #操作系统交互接口

    • 考点:

      1. 创建一个新的文件

      2. 读取旧的文件内容

      3. 进行替换修改

      4. 将修改的内容写入到新的文件中

      5. 将文件关闭

      6. 将文件名进行修改

      • 将文件中全部内容读取容易导致内存溢出

    • with open('a1','r',encoding='utf-8')as f:

      • 自动关闭文件

      • 同时操作多个文件

        • with open('a1','r',encoding='utf-8')as f,open('a2','r',encoding='utf-8')as f1:
          #上下文管理

    文件操作目的

    1. 持久化:永久存储

  • 相关阅读:
    比特币学习笔记(五)---继续解读入口部分源码
    比特币学习笔记(四)---解读入口部分源码
    比特币学习笔记(三)---配置文件和启动
    比特币学习笔记(二)---在windows下调试比特币源码
    比特币学习笔记(一)---在windows下编译搭建比特币环境
    让我们把KBEngine玩坏吧!如何定制我们自己的C++函数(一)
    KBEngine warring项目源码阅读(三) 实体文件与Account处理
    KBEngine warring项目源码阅读(二) 登录和baseapp的负载均衡
    KBEngine warring项目源码阅读(一) 项目简介和注册
    JMeter测试TCP服务器遇到的一个奇怪问题
  • 原文地址:https://www.cnblogs.com/zlx960303/p/11917392.html
Copyright © 2011-2022 走看看