1. 程式人生 > >python 讀取文本文件

python 讀取文本文件

文件 文本文 des 去掉 som 打開文件 最簡 object variable

Python的文本處理是經常碰到的一個問題,Python的文本文件的內容讀取中,有三類方法:read()、readline()、readlines(),這三種方法各有利弊,下面逐一介紹其使用方法和利弊。
read():
  • read()是最簡單的一種方法,一次性讀取文件的所有內容放在一個大字符串中,即存在內存中
    file_object = open(‘test.txt‘) //不要把open放在try中,以防止打開失敗,那麽就不用關閉了
    try:
        file_context = file_object.read() //file_context是一個string,讀取完後,就失去了對test.txt的文件引用
        #  file_context = open(file).read().splitlines() 
        // file_context是一個list,每行文本內容是list中的一個元素
    finally:
        file_object.close()
    //除了以上方法,也可用with、contextlib都可以打開文件,且自動關閉文件,
    //以防止打開的文件對象未關閉而占用內存
  • read()的利端
    • 方便、簡單
    • 一次性獨讀出文件放在一個大字符串中,速度最快
  • read()的弊端
    • 文件過大的時候,占用內存會過大
readline():
  • readline()逐行讀取文本,結果是一個list
    with open(file) as f:
        line = f.readline()
        while line:
            print line
            line = f.readline()
  • readline()的利端
    • 占用內存小,逐行讀取
  • readline()的弊端
    • 由於是逐行讀取,速度比較慢
readlines():
  • **readlines()一次性讀取文本的所有內容,結果是一個list
    with open(file) as f:
      for line in f.readlines():
         print line
    • 這種方法讀取的文本內容,每行文本末尾都會帶一個‘\n‘換行符 (可以使用L.rstrip(‘\n‘)去掉換行符)
  • readlines()的利端
    • 一次性讀取文本內容,速度比較快
  • readlines()的弊端
    • 隨著文本的增大,占用內存會越來越多

最簡單、最快速的逐行處理文本的方法:直接for循環文件對象

file_object = open(‘test.txt‘,‘rU‘)
try: 
    for line in file_object:
         do_somthing_with(line)//line帶"\n"
finally:
     file_object.close()




python 讀取文本文件