python之文件操作

python之文件操作与序列化

在程序的运行过程当中必然会有数据的交换,数据的输出叫output操作,数据的输入叫input操作。最常见的input操作就是从硬盘里读取数据,最常见的output就是往硬盘里写数据。IO编程有两种模式,一种是同步IO,另一种是异步IO,它们的区别就是是否等待IO的结果。

1.文件的读写

  文件读写是最常见的IO操作,普通程序是无法直接操作文件的,电脑上的文件都是由操作系统直接管理,其它程序想使用某个文件都需要调用操作系统的接口。

  操作文件的流程:

    (1)打开文件

      用open(“文件名","模式")打开文件。

      打开文件的模式:

      1)r[只读(默认)],w[只写;不存在则创建,存在则覆盖],x[只写;不存在则创建,存在则报错],a[追加;不存在则创建,存在则追加到末尾]

      2)r+[读写],w+[写读],x+[写读],a+[写读]

      3)rb,wb,xb,ab,表示以字节方式操作(字符串操作encode,decode,bytes

    (2)操作文件

      close     #关闭文件
      detach
      fileno
      flush     #更新内存中的文件内容
      isatty    
      read      #读取文件所有的内容(size参数)
      readable  #返回文件是否可读
      readline  #读取文件一行字符串(size参数)
      readlines #读取文件内容到一个列表,每个元素都是字符串(size参数)
      seek      #将指针调到某个位置,0,1,2
      seekable  #文件是否可以查找
      tell      #返回目前指针所处的位置
      truncate  #截取某段文件内容
      writable  #返回文件是否可写
      write     #写入文件内容,只能操作字符串
      writelines#将列表中的字符串写入文件

    (3)关闭文件

      close()

    (4)管理上下文

      with open("text.txt",w) as f, open("text2.txt",w) as f2:

        ......

      通过使用with语句我们可以不用在打开文件后再用close语句关闭文件。

2.StringIO和BytesIO

    StringIO和BytesIO是在内存中操作str和bytes的方法,使得和读写文件具有一致的接口。

3.os模块

    os模块封装了操作系统目录和文件的操作,有些在os模块中,有些在os.path模块中。

4.序列化

    把变量指向的数据从内存中的状态变为可以作为存储和传输的bytes文件格式,这个过程称作序列化。从序列化文件读取到内存中称为反序列化。

    (1)pickle(只用于python)

      使用方法如下:

        

    (2)json

      如果想要在不同的编程语言之间传递对象,那么需要把对象序列化为标准格式。通常的序列化标准格式为XML,Json等,json可以直接被所有语言读取,

 它表示出来就是一个字符串,比xml传输速度快,可以直接在web页面中读取。

      JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:

      

      dumps()方法返回一个str,内容就是一个标准的json,用load()方法来反序列化。

      dump()方法返回一个file-like-object文件对象,用load()方法来反序列化。

      如果需要序列化的对象不是一个字典,那么我们需要需改json的一些默认参数来使得对象可以被序列化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值