文件与IO

文件与IO

读写文件
    文本文件读取 
        with open('somefile.txt', 'rt') as f
    文本文件写入
        with open('somefile.txt', 'wt') as f
        encoding='ascii' 文件编码
        errors='replace|ignore' 错误处理方式

打印输出至文件
    print('Hello World!', file=f) #文件必须以文本模式打开

指定打印分隔符和结束符
    在 print() 函数中使用 sep 和 end 关键字参数
    print('ACME', 50, 91.5, sep=',', end='!!\n')

读写字节数据
    字节文件读取
        with open('somefile.bin', 'rb') as f
    字节文件写入
        with open('somefile.bin', 'wb') as f

    文件不存在才可写入用xt,xb替换wt,wb


字符串I/O
    io.StringIO()
二进制I/O
    io.BytesIO()

读写压缩文件
    gzip文件读取
        import gzip
        with gzip.open('somefile.gz', 'rt') as f
    bz2文件读取
        import bz2
        with bz2.open('somefile.bz2', 'rt') as f

固定大小记录的文件迭代
    from functools import partial
    RECORD_SIZE = 32
    with open('somefile.data', 'rb') as f:
        records = iter(partial(f.read, RECORD_SIZE), b'')
        for r in records:
    functools.partial 用来创建一个每次被调用时从文件中读取固定数目字节的可调用对象。 标记值 b'' 就是当到达文件结尾时的返回值


内存映射二进制文件
    import mmap
    mmap.mmap(filename, os.path.getsize(filename), access=mmap.ACCESS_WRITE)
    用 mmap 将文件映射到内存中是一个高效和优雅的随机访问文件的方法。
        注意点:
            内存映射一个文件并不会导致整个文件被读取到内存中
            如果多个Python解释器内存映射同一个文件,得到的 mmap 对象能够被用来在解释器直接交换数据

文件操作
    
    获取文件名
        os.path.basename
    获取目录名
        os.path.dirname
    路径拼接
        os.path.join
    展开用户全路径
        os.path.expanduser
    分开文件扩展名
        os.path.splitext
    文件或目录是否存在
        os.path.exists
    是否为文件
        os.path.isfile
    是否为目录
        os.path.isdir
    是否为文件链接
        os.path.islink
    链接文件源地址
        os.path.realpath
    获取文件大小
        os.path.getsize
    获取文件修改时间
        os.path.getmtime
    获取目录下文件列表
        os.listdir

  open 或 listdir 传入 b'file'时通过原始未解码的方式处理文件名,可避免一些文件编码问题导致的错误


 创建临时文件和文件夹
       创建临时文件
      from tempfile import TemporaryFile
      f = TemporaryFile('w+t')
      创建带名称的文件
      from tempfile import NamedTemporaryFile
      NamedTemporaryFile('w+t')

      创建临时目录
      from tempfile import TemporaryDirectory

 与串行端口的数据通信
     import serial

 序列化python对象
     import pickle
     序列化为二进制 pickle.dump(data, f)
     序列化为字符串 pickle.dumps()
     从字节流恢复   pickle.load()
     从字符串恢复   pickle.loads()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值