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、文件迭代器进行迭代
  • 相关阅读:
    java 反射 报错:Attempt to get java.lang.Integer field "..." with illegal data type conversion to int
    经常报错:Communications link failure
    解析Excel
    spring+atomikos+mybatis 多数据源事务(动态切换)
    mysql 存储过程
    Ace Admin 学习笔记
    spring mvc 表单提交 乱码
    spring 事务
    基于注解的Spring多数据源配置和使用(非事务)
    javaEE版本的eclipse中导入工程,发现server里面找不到工程,根本发布不了也不能运行
  • 原文地址:https://www.cnblogs.com/xiangys0134/p/8169116.html
Copyright © 2011-2022 走看看