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 '\n'
| in Python. Also, a file so opened gains the attribute 'newlines';
| the value for this attribute is one of None (no newline read yet),
| '\r', '\n', '\r\n' 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\n',
'\n',
"logging.basicConfig(filename='test.log', level=logging.INFO)\n",
"logging.info('Started')\n",
"print 'x' + 1\n",
"logging.info('Finished')\n"] 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\n',
'\n',
"logging.basicConfig(filename='test.log', level=logging.INFO)\n",
"logging.info('Started')\n",
"print 'x' + 1\n",
"logging.info('Finished')\n"] 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的一个很重要的原因吧

Python中的file和open简述的更多相关文章

  1. 转发 python中file和open有什么区别

    python中file和open有什么区别?2008-04-15 11:30地痞小流氓 | 分类:python | 浏览3426次python中file和open有什么区别?都是打开文件,说的越详细越 ...

  2. python中使用openpyxl模块时报错: File is not a zip file

    python中使用openpyxl模块时报错: File is not a zip file. 最大的原因就是不是真正的 xlsx文件, 如果是通过 库xlwt  新建的文件,或者是通过自己修改后缀名 ...

  3. 简述python中`functools.wrapper()

    简述python中functools.wrapper() 首先对于最简单的函数: def a(): pass if __name__ == '__main__': print(a.__name__) ...

  4. Python中关于with open file as 的用法

    最近用到python来处理文本文件了,然后需要处理文件.发现python中提供的with   open  as   这个还是用的不错的!好的,废话不多说了,看下例子: with open('./sig ...

  5. 简述Python中的break和continue的区别

    众所周知在Python中,break是结束整个循环体,而continue则是结束本次循环再继续循环. 但是作为一个新手的你,还是不明白它们的区别,这里用一个生动的例子说明它们的区别,如下: 1.con ...

  6. python中进程、线程、协程简述

    进程 python中使用multiprocessing模块对进程进行操作管理 进程同步(锁.信号量.事件) 锁 —— multiprocessing.Lock 只要用到了锁 锁之间的代码就会变成同步的 ...

  7. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  8. python中的TypeError错误解决办法

    新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...

  9. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

随机推荐

  1. regsvr32命令

    regsvr32是Windows操作系统命令,用来注册及反注册DLL文件和ActiveX文件. 1.  使用示例 regsvr32  foo.dll    // 注册foo.dll文件到Windows ...

  2. MongoDB学习笔记~ObjectId主键的设计

    回到目录 说一些关于ObjectId的事 MongoDB确实是最像关系型数据库的NoSQL,这在它主键设计上可以体现的出来,它并没有采用自动增长主键,因为在分布式服务器之间做数据同步很麻烦,而是采用了 ...

  3. 魔改——MFC SDI 支持 内嵌 EXCEL OLE

    ==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...

  4. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理5

    我们先直接拷贝下blank.html这个页面的代码,顺带先建立一个Home控制器,并添加Index视图.将代码拷贝进去. <!DOCTYPE html> <html lang=&qu ...

  5. 再解java中的String

    今天看到一篇文章中,写了关于java中的String.我看了后,是我从学java来觉得是最好的一篇关于String类的文章.看了这篇文章你就会对String的认识会提高一个层次.故将原作者的文章特意转 ...

  6. ActionBar详解

    转: 一.ActionBar介绍 在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和 ...

  7. CentOS 6.3下Samba服务器的安装与配置

    一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...

  8. 防火墙防DDOS攻击的简单设置

    #Ping洪水攻击(Ping of Death) iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s - ...

  9. Leetcode: word search

    July 6, 2015 Problem statement: Word Search Given a 2D board and a word, find if the word exists in ...

  10. 一个页面从输入URL到页面加载显示完成,这个过程都发生了什么?

    对于网址栏的URL不同的操作方式有不同的加载资源.获取数据的方式,下面的详细过程针对"在地址栏输入URL,按enter(回车)键加载资源"此种操作方式做解析,其它的方式的过程大同小 ...