|
|
51CTO旗下网站
|
|
移动端

2.6.1 读文件

《自学Python:编程基础、科学计算及数据分析》第2章Python 基础,在本章中,我们将学习Python 语言的基本使用,掌握Python 的基本使用方法,为后续的学习打下基础。本节为大家介绍读文件。

作者:李金来源:机械工业出版社|2018-05-03 21:20

2.6 文件读写

读写文件是我们经常会遇到的问题。Python提供了一个方便的文件读写模式。

2.6.1 读文件

假设我们有一个文件“test.txt”,内容为:

  1. this is a test file.   
  2. hello world!   
  3. python is good!   
  4. today is a good day. 

在 Python中,我们可以使用 open()或者 file()函数来读取文件。两者都使用文件名作为参数来打开一个文件:

  1. In [1]: f = file('test.txt')   
  2. In [2]: f = open('test.txt') 

两种方式基本没有区别,Python推荐使用open()函数进行操作。

open()函数返回一个打开的文件对象:

  1. In [3]: f   
  2. Out[3]: <open file 'test.txt', mode 'r' at 0x00000000048B6270> 

其中,“r”表示只读模式。

open()函数默认以只读的方式打开文件,如果文件不存在,程序会抛出异常。只读模式(Read-Only Mode)指的是只能读取文件的内容而不能修改它。我们可以调用.read()方法来一次读取文件中的所有内容:

  1. In [4]: f.read()   
  2. Out[4]: 'this is a test file.\nhello world!\npython is good!\ntoday is   
  3. a good day.' 

当读取完一个文件时,需要使用.close()方法将这个文件关闭:

  1. In [5]: f.close() 

刚才的.close()方法已经将文件关闭,再次读取需要重新打开该文件:

  1. In [6]: f = open('test.txt') 

也可以使用.readlines()方法对文件内容按行读取,该方法返回一个列表,每个元素为文件中每一行的内容:

  1. In [7]: f.readlines()   
  2. Out[7]: ['this is a test file.\n', 'hello world!\n', 'python is good!\n',  
  3.  'today is a good day.']   
  4. In [8]: f.close() 

返回的列表中,每一行行末的回车符“\n”会被保留。

for循环支持文件对象的迭代,每次读取一行,直到不能读取为止:

  1. In [9]: f = open('test.txt')   
  2.  
  3. In [10]: for line in f:  
  4.     ...: print line  
  5.     ...:   
  6.  
  7. this is a test file.  
  8. hello world!  
  9. python is good!  
  10. today is a good day.   
  11. In [11]: f.close() 

还可以使用.readline()函数只读取文件的一行:

  1. In [11]: f = open('test.txt')   
  2. In [12]: f.readline()   
  3. Out[12]: 'this is a test file\n' 

在这种情况下,文件并没有被读取完整,我们可以继续读取后续的内容。

例如,如果我们调用.read()方法,会得到除第一行之外的所有内容:

  1. In [13]: f.read()   
  2. Out[13]: 'hello world!\npython is good!\ntoday is a good day.'   
  3. In [14]: f.close()  

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

JavaScript核心技术

它从最简单的地方入手,不仅讲述了JavaScript的基础知识,还讲述了JavsScript如何操作CSS、DOM等Ajax基础技术。而关于跨浏览器兼容问题的解...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊