• Python基础之文件操作


    python的文件操作还是比较简单的基本分为三步:打开,读写,关闭

    文件打开

    f=open('db','r') 打开
    f.read()  读
    f.close()  关闭

    为了避免程序员忘记最后一步关闭,优雅的python使用了以下语句:

    with open('db','r') as f,open('db2','r') as f2:
        opration...

    当然要记得冒号和缩进啦。。

    文件操作

    文件操作分为5个基本模式:

    # f = open('db', 'r') # 只读
    # f = open('db', 'w') # 只写,先清空原文件
    # f = open('db', 'x') # 文件存在,报错;不存在,创建并只写,用的不多
    # f = open('db', 'a') # 追加

    还有一个+的模式,但要与基本模式组合使用

    r+ 读写
    w+ 写读,先清空,后写入,再读取
    a+ 追加写入,永远是文件末尾追加

    还有一个b,b是以二进制打开,但不能加encoding参数

    # f = open('db', 'rb') #以二进制打开,不能加encoding参数,

    一般open()参数中,需要加(操作对象,操作模式,encoding编码)

    操作时需要注意一定,二进制打开不需要设定enconding,但write写入中文时,需要先将中文反转为二进制:

    f=open('db','ab')       ##二进制打开就不需要写编码了
    f.write(bytes('李杰',encoding='utf-8'))   #写入时要反转为二进制

    f.write() 对文件进行写入操作。

    操作文件

     

    read()    无参数,全部读取;有参数:b,按字节读取,无b按字符读取
    readlines()    将文本每一行读取,并转为列表
    readline     读每一行
    f.tell()  显示当前指针所在的位置
    f.seek(10)  移动指针到目标位置,使用seek()移动指针后,写入文件都后直接覆盖后面的内容,并非插入
    f.fileno()  显示文件描述符
    f.flush()  将缓冲区的文件强制写硬盘
    f.readable()  判断是否可读
    f.truncate()  截取数据,使用seek()移动指针,清空指针后面的内容,只保留前面的内容
    f.write()  写数据,如果open中有b,按字节,如果无b,按字符

    f=open('db','r+')
    # print(f.read())
    print(())
    
    print(f.tell())
    f.seek(f.tell())
    print(f.tell())
    f.write('')  #直接覆盖
    print(f.read())

    栗子:

    f = open("db", 'ab')
    f.write(bytes("李杰", encoding="utf-8"))
    f.close()
    f = open("db", 'r+', encoding="utf-8")
    # f.fileno()
    # 如果打开模式无 b,则read,按照字符读取
    data = f.read(1)
    # tell当前指针所在的位置(字节)
    print(f.tell())
    # 调整当前指着你的位置(字节)
    f.seek(f.tell())
    # 当前指针位置开始向覆盖
    f.write("888")
    f.close()
  • 相关阅读:
    安装Rocky版OpenStack 1控制节点+1计算节点环境部署脚本
    脚本安装Rocky版OpenStack 1控制节点+1计算节点环境部署
    采用脚本自动填写具有交互式命令的方法
    CentOS安装Docker
    WordPress博客搭建与问题总结
    OpenStack端口(15)
    openstack搭建之-horizon配置(14)
    openstack搭建之-创建实例(13)
    openstack搭建之-cinder配置(12)
    openstack搭建之-neutron配置(11)
  • 原文地址:https://www.cnblogs.com/ccorz/p/5527089.html
Copyright © 2020-2023  润新知