Differences between revisions 1 and 2
Revision 1 as of 2004-09-19 22:05:29
Size: 990
Editor: 61
Comment:
Revision 2 as of 2004-09-19 22:20:39
Size: 1767
Editor: 61
Comment:
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
file_object = open('thefile.txt') file_object = open('thefile.txt')              # 打开文件
Line 31: Line 31:
file_object.close( ) #使用完毕,关闭文件 file_object.close( ) # 使用完毕,关闭文件
Line 34: Line 34:
... 将文本文件的全部内容按照分行 作为一个tuple读出有4种方法

{{{
list_of_all_the_lines = file_object.readlines( ) # 方法 1
list_of_all_the_lines = file_object.read( ).splitlines(1) # 方法 2
list_of_all_the_lines = file_object.read().splitlines( ) # 方法 3
list_of_all_the_lines = file_object.read( ).split('\n') # 方法 4
}}}

方法1、2 返回的tuple中包含的string 元素末尾有'\n',方法3、4返回的tuple中包含的string元素末尾去掉了‘\n’
方法1是效率最高的,而且最符合python的风格。

在Python 2.2以及更高版本中,有方法5和方法1等效
{{{
list_of_all_the_lines = list(file_object) # 方法 5
}}}

文章来自《Python cookbook》.

翻译仅仅是为了个人学习,其它商业版权纠纷与此无关!

-- 61.182.251.99 [DateTime(2004-09-19T22:05:29Z)] TableOfContents

描述

读取文件内容 Credit: Luther Blissett

问题 Problem

从文件读取文本或数据

解决

一次将文件内容读入一个长字符串的最简便方法

all_the_text = open('thefile.txt').read(  )    # 文本文件的全部文本
all_the_data = open('abinfile', 'rb').read(  ) # 2进制文件的全部数据

更好的方法是将文件对象和一个变量绑定,可以及时关闭文件。比如,读取文本文件内容

file_object = open('thefile.txt')              # 打开文件
all_the_text = file_object.read(  )            # 文本文件的全部文本
file_object.close(  )                          # 使用完毕,关闭文件

将文本文件的全部内容按照分行 作为一个tuple读出有4种方法

list_of_all_the_lines = file_object.readlines(  )             # 方法 1
list_of_all_the_lines = file_object.read(  ).splitlines(1)    # 方法 2
list_of_all_the_lines = file_object.read().splitlines(  )     # 方法 3 
list_of_all_the_lines = file_object.read(  ).split('\n')      # 方法 4 

方法1、2 返回的tuple中包含的string 元素末尾有'\n',方法3、4返回的tuple中包含的string元素末尾去掉了‘\n’ 方法1是效率最高的,而且最符合python的风格。

在Python 2.2以及更高版本中,有方法5和方法1等效

list_of_all_the_lines = list(file_object)                     # 方法 5 

   1 

讨论 Discussion

...

参考 See Also

PyCkBk-4-2 (last edited 2009-12-25 07:16:21 by localhost)