python核心编程----文件和输入输出

9.1 文件对象

         文件对象不仅可用来访问普通的磁盘文件,也可以访问任何其他类型抽象层面上的“文件”。一旦设置了合适的“钩子”,就可以访问具有文件类型接口的其他对象。

9.2  文件内建函数 open()  和 file()

        open() 内建函数成功打开文件后会返回一个文件对象,否则引发一个错误。当操作失败,产生一个IOError异常。
        语法:  file_object   =   open(file_name,   access_mod='r',   buffering=-1)
        使用 r  和  U 打开的文件必须是已存在的。使用  w  打开的文件,若存在则先清空,再重新创建。 a 模式是为追加数据做准备的,所有写入数据都将追加到文件的末尾。若文件不存在,则自动创建。
        若没有给定access_mod  默认使用 r 。

9.2.1  工厂函数 file()

        open()  和 file() 具有相同的功能,可以任意替换。

9.2.2   通用换行符支持 UNS

        不同平台用来表示行结束的符号是不同的。  Universal  NEWLINE Support .当使用U 打开文件,所有行分隔符通过python的输入方法返回时都被替换为 \n  。UNS只用于读取文本文件。

9.3   文件内建方法

       核心笔记:
               行分隔符问题。
               f    =    open('myfile',   'r')
              data   =   [ line.strip()   for  line   in   f.readlines() ]
              f.close()

9.4  文件内建属性

           file.closed  表示文件已经被关闭。
           file.encoding 文件所使用的编码
           file.mode   文件打开时使用的访问模式
           file.name   文件名
           file.lines   未读取到行分隔符时为None, 只有一种行分隔符时为一个字符串,有多种行分隔符时,是一个列表。
           file.softspace   为0表示输出一个数据后加上一个空格符,为1 表示不加。          

9.5  标准文件

         标准输入,标准输出,标准错误。 Python通过sys模块访问这些文件的句柄。

9.6  命令行参数

         sys.argv属性提供对命令行参数的访问。
         sys.argv 是命令行参数的列表

9.7  文件系统

         

9.9   永久存储模块

9.9.1  pickle  和   marshal 模块

        将比基本类型复杂的对象转换为一个二进制数据集合,这样就可以把数据集合保存起来或者通过网络发送,然后再重新把数据集合恢复原来的对象格式。序列化。
        这些模块本身没有提供“永久性存储”的功能,因为他们没有为对象提供名称空间,也没有提供对永久性对象的并发写入访问。marshal只能处理简单的Python对象(数字,序列,映射和代码对象),而pickle还可以处理递归对象,被不同地方多次引用的对象,以及用户定义的类和实例。
        

9.9.2  DBM风格的模块

        anydbm模块会自动检测系统已安装的DBM兼容模块,并选择“最好“的一个。

9.9.3  shelve模块

        shelve模块使用anydbm寻找合适的DBM模块,然后使用cPickle来完成存储转换过程。shelve模块允许对数据库文件进行并发的读访问,但是不允许共享读、写访问。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值