zoukankan      html  css  js  c++  java
  • Python 学习之文件对象的属性和方法简介

    python的文件处理和相关输入输出能力。介绍文件对象(它的内建函数,内建方法和属性),标准文件,同时讨论文件系统的访问方法,文件执行,以及相关文件模块。
     
    一、内建函数open
    语法:file_object = open(file_name,access_mode='r',buffering=-1)
    file_name    要打开的绝对路径或者相对路径文件名
    access_mode    处理文件的模式,常规的模式有r、w、a、r+、w+、a+。其中r模式的前提是系统本身存在该文件,读取模式。w模式表示写模式,并且会将文件内容清空,a模式表示追加模式
    buffering    可选参数,0表示不缓冲,1表示缓冲一行数据
     
    二、文件内建方法:
    1、输出
    f1.read()
    该方法用来直接读取字节到字符串中,可以指定读取数目,默认是文件将被读取直至末尾,例如
    >>> f1 = open('/var/log/messages','r')
    >>> f1.read()
    'Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed Dec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns Dec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception '
     
    readline()
    该方法用来读取文件的一行
    >>> f1 = open('/var/log/messages','r')
    >>> f1.readline()
    'Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed '
     
     f1.readlines()
    该方法用来将读取的所有行作为一个字符串列表返回
    >>> f1 = open('/var/log/messages','r')
    >>> f1.readlines()
    ['Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed ', 'Dec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns ', 'Dec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception ']
     
    next()
    该函数主要是用来逐行读取
    >>> f1.next()
    'Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed '
    >>> f1.tell()
    368
    >>> f1.next()
    'Dec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns '
    >>> f1.next()
    'Dec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception '
    >>> f1.next()
    'Dec 25 06:12:51 xiangys0134_1 abrt: detected unhandled Python exception '
    >>> f1.next()    //注意:如果已经读取到末尾行再用这个方法就会返回错误
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    StopIteration
     
     
    2、输入
    write()
    该方法会将文件里之前的内容清空。
     
    >>> f1 = open('/tmp/messages','w')
    >>> f1.write('test ffffff ')
    >>> f1.close()
     
     
    三、文件迭代
    1、for循环迭代,使用函数eadlines()
    >>> f1 = open('/tmp/messages','r')
    >>> lines = f1.readlines()    //注意:这种方法如果文件内容非常多的话,不建议这么操作
    >>> for i in lines:
    ...     print i,
    ... 
    Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
    Dec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns
    Dec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception
    Dec 25 06:12:51 xiangys0134_1 abrt: detected unhandled Python exception
     
    2、文件迭代器进行迭代
  • 相关阅读:
    《信息安全系统设计基础》实验一 开发环境的熟悉
    20145208 《信息安全系统设计基础》第七周学习总结
    20145208 《信息安全系统设计基础》第六周学习总结
    TCP基本概念
    UNP学习笔记1——基本TCP套接字编程
    C++内存分配方式——小结
    APUE学习笔记7——进程间通信
    哈希表的概念和简单的实现算法
    APUE学习笔记6——线程和线程同步
    C++面向对象的设计思想——小结
  • 原文地址:https://www.cnblogs.com/xiangys0134/p/8169116.html
Copyright © 2011-2022 走看看