• Python中的file和open简述


    help(file) help(open)

    老规矩先看一下内置的帮助文档怎么描述file和open,毕竟官方文档是最直接最准确的描述。

    Help on class file in module __builtin__:
    
    class file(object)
     |  file(name[, mode[, buffering]]) -> file object
     |  
     |  Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),
     |  writing or appending.  The file will be created if it doesn't exist
     |  when opened for writing or appending; it will be truncated when
     |  opened for writing.  Add a 'b' to the mode for binary files.
     |  Add a '+' to the mode to allow simultaneous reading and writing.
     |  If the buffering argument is given, 0 means unbuffered, 1 means line
     |  buffered, and larger numbers specify the buffer size.  The preferred way
     |  to open a file is with the builtin open() function.
     |  Add a 'U' to mode to open the file for input with universal newline
     |  support.  Any line ending in the input file will be seen as a '
    '
     |  in Python.  Also, a file so opened gains the attribute 'newlines';
     |  the value for this attribute is one of None (no newline read yet),
     |  '
    ', '
    ', '
    ' or a tuple containing all the newline types seen.
    
    

    简单来说就是file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建。但是更推荐使用内置函数open()来打开一个文件,所以我们再看一下open()的介绍:

    Help on built-in function open in module __builtin__:
    
    open(...)
        open(name[, mode[, buffering]]) -> file object
        
        Open a file using the file() type, returns a file object.  This is the
        preferred way to open a file.  See file.__doc__ for further information.
    (END)
    

    首先open是内置函数,使用方式是open('file_name', mode, buffering),返回值也是一个file对象,同样,以写模式打开文件如果不存在也会被创建一个新的。

    使用实例

    In [8]: f1 = open('test.py')                                                                                                                                                                      
    
    In [9]: f1.
    f1.close       f1.fileno      f1.name        f1.readinto    f1.softspace   f1.writelines
    f1.closed      f1.flush       f1.newlines    f1.readline    f1.tell        f1.xreadlines
    f1.encoding    f1.isatty      f1.next        f1.readlines   f1.truncate    
    f1.errors      f1.mode        f1.read        f1.seek        f1.write       
    
    In [9]: f1.rea
    f1.read       f1.readinto   f1.readline   f1.readlines  
    
    In [9]: f1.readli
    f1.readline   f1.readlines  
    
    In [9]: f1.readlines()
    Out[9]: 
    ['import logging
    ',
     '
    ',
     "logging.basicConfig(filename='test.log', level=logging.INFO)
    ",
     "logging.info('Started')
    ",
     "print 'x' + 1
    ",
     "logging.info('Finished')
    "]
    
    In [10]: f1.cl
    f1.close   f1.closed  
    
    In [10]: f1.close()
    
    In [11]: f2 = file('test.py')                                                                                                                                                                     
    
    In [12]: f2.
    f2.close       f2.fileno      f2.name        f2.readinto    f2.softspace   f2.writelines
    f2.closed      f2.flush       f2.newlines    f2.readline    f2.tell        f2.xreadlines
    f2.encoding    f2.isatty      f2.next        f2.readlines   f2.truncate    
    f2.errors      f2.mode        f2.read        f2.seek        f2.write       
    
    In [12]: f2.read
    f2.read       f2.readinto   f2.readline   f2.readlines  
    
    In [12]: f2.readli
    f2.readline   f2.readlines  
    
    In [12]: f2.readlines()
    Out[12]: 
    ['import logging
    ',
     '
    ',
     "logging.basicConfig(filename='test.log', level=logging.INFO)
    ",
     "logging.info('Started')
    ",
     "print 'x' + 1
    ",
     "logging.info('Finished')
    "]
    
    In [13]: f2.cl
    f2.close   f2.closed  
    
    In [13]: f2.closed()
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-13-24c97e0e079e> in <module>()
    ----> 1 f2.closed()
    
    TypeError: 'bool' object is not callable
    
    In [14]: f2.closed
    Out[14]: False
    
    In [15]: f2.close()
    
    # 打开不存在的文件
    
    In [18]: f3 = file('txt.txt', 'r+')
    ---------------------------------------------------------------------------
    IOError                                   Traceback (most recent call last)
    <ipython-input-18-3e9262877eea> in <module>()
    ----> 1 f3 = file('txt.txt', 'r+')
    
    IOError: [Errno 2] No such file or directory: 'txt.txt'
    
    In [19]: f3 = file('txt.txt', 'w+')
    
        
    
    

    可以看出来使用的时候区别也不大,不过注意Py3中已经没有了file~这可能也是推荐使用open的一个很重要的原因吧

  • 相关阅读:
    关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi
    在android上监听网络状态的变更
    mysql:insert on duplicate key 版本导致问题
    android中TextView中文字体粗体的方法
    10.2香港一人一日购物游流水账
    结婚的意义
    关于摄影的若干个命题
    人生若彷如倒序。。。本杰明·巴顿奇事 The Curious Case of Benjamin Button
    阳光十六法则
    花街人真多,多我一个就溢出了
  • 原文地址:https://www.cnblogs.com/wswang/p/5778929.html
Copyright © 2020-2023  润新知