• python每日一练之读写txt文件


    1.获取文件操作对象 

     读写文件就是请求操作系统打开一个文件对象,然后通过系统提供的接口读写数据。

    f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

    上述代码获取了一个文件对象f,注意操作结束后,要f.close()关闭文件

    file:文件的路径

    mode:文件打开模式

    常见的模式有

    模式 描述
    b 二进制模式
    r 以只读方式打开,指针放在文件开头
    r+ 读写方式打开,指针放在文件开头
    rb 已二进制打开一个文件,只读
    rb+ 二进制打开一个文件,读写
    w 写的方式打开一个文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件
    w+ 读写的方式打开一个文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件
    wb+ 读写的方式打开一个二进制文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件
    a 追加的方式打开文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件
    a+ 追加的方式打开文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件
    ab+ 追加的方式打开二进制文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件

    buffering:设置缓冲

    encoding:编码格式

    errors:报错级别

    newline:区分换行符

    closefd:传入file参数

    2.写文件

    a. f.write(str1) 将字符串写入文件,返回的是写入的字符长度

    b.f.writelines(list1) 写入一个字符串列表

    写文件时,内容会先到缓冲区,等待系统空闲或者close时才会写入到文件中,推荐with的写法

    l1 = [u'测试
    ', 'test
    ']  # 需要添加换行符
            f1.writelines(l1)

    3.读文件

    a.f.read(size) 读指定字节的内容,默认读取文件所有内容。注意读取到的指是str类型,如果需要运算要先进行转换。

    b. f.readline() 读取一行,包括换行符

    c. f.readlines(sizeint) 读取所有行,并且返回列表。若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区

    4.其他

    f.tell() 返回指针当前位置

    f.seek(offset[,whence]) 移动指针到指定位置,

    offset 偏移量,可以是负,代表从后向前移动

    whence 偏移相对位置,0 开头位置 1 当前位置 2 文件结尾位置

    例如 seek(x, 0) 从开始位置位移x

    seek(x, 1) 从当前位置向后位移x

    seek(-x, 2) 从结尾位置向前位移x

    f.truncate(size)   (存疑)从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 windows 系统下的换行代表2个字符大小。

    5.关于异常

    如果文件不存在,open()函数会抛出一个IOError异常错误。

    其他异常待补充

  • 相关阅读:
    MQ:RocketMQ
    un-动物:大雁
    un-动物:鸽子
    POJ 1236 Network of Schools 强连通图
    Cocos2d-x 2.2.3 使用NDK配置安卓编译环境问题之 Cannot find module with tag 'CocosDenshion/android' in import path
    POJ3321:Apple Tree(树状数组)
    swift菜鸟入门视频教程-09-类和结构体
    Ambari-单步创建cluster
    折腾开源WRT的AC无线路由之路-5
    VMware虚拟机配置文件(.vmx)损坏修复
  • 原文地址:https://www.cnblogs.com/Cc905/p/12995259.html
Copyright © 2020-2023  润新知