python讀取文件的幾種形式

1. enumerate 讀取文件行號和內容

處理數據時候,需要得到數據所在和行號,使用enumerate時便捷的方法:
注:文件不宜過大,讀個配置文件還是不錯

wh@WHdeMacBook-Pro:/tmp$cat 001.py  #腳本內容
#!/usr/bin/env python
# -*- coding:utf-8 -*-

file = open('001.txt','r')
for (num,value) in enumerate(file):
     print "line num is: ",num,"content:",value
file.close()
wh@WHdeMacBook-Pro:/tmp$

wh@WHdeMacBook-Pro:/tmp$cat 001.txt  #讀取文件內容
用起伏的背影 擋住哭泣的心
有些故事 不必說給 每個人聽
許多眼睛 看的太淺太近
錯過我沒被看見 那個自己
用簡單的言語 解開超載的心
有些情緒 是該說給 懂的人聽
你的熱淚 比我激動憐惜
我發誓要更努力 更有勇氣

wh@WHdeMacBook-Pro:/tmp$/usr/bin/python 001.py  #執行結果
line num is:  0 content: 用起伏的背影 擋住哭泣的心
line num is:  1 content: 有些故事 不必說給 每個人聽
line num is:  2 content: 許多眼睛 看的太淺太近
line num is:  3 content: 錯過我沒被看見 那個自己
line num is:  4 content: 用簡單的言語 解開超載的心
line num is:  5 content: 有些情緒 是該說給 懂的人聽
line num is:  6 content: 你的熱淚 比我激動憐惜
line num is:  7 content: 我發誓要更努力 更有勇氣

2.read () 以字符串形式返回整個文件

關於read()方法:
1、讀取整個文件,將文件內容放到一個字符串變量中
2、如果文件大於可用內存,不可能使用這種處理

wh@WHdeMacBook-Pro:/tmp$cat 002.py  #腳本內容
#!/usr/bin/env python
# -*- coding:utf-8 -*-
file = open("001.txt",'r')
try:
    text = file.read()  
    print type(text)
    print "text=",text
finally:                            #finally
    file.close()

wh@WHdeMacBook-Pro:/tmp$/usr/bin/python 002.py 
<type 'str'>
text= 用起伏的背影 擋住哭泣的心
有些故事 不必說給 每個人聽
許多眼睛 看的太淺太近
錯過我沒被看見 那個自己
用簡單的言語 解開超載的心
有些情緒 是該說給 懂的人聽
你的熱淚 比我激動憐惜
我發誓要更努力 更有勇氣

3.readline() 返回一行數據

關於readline()方法:
1、readline()每次讀取一行,比readlines()慢得多
2、readline()返回的是一個字符串對象,保存當前行的內容

wh@WHdeMacBook-Pro:/tmp$cat 003.py 
#!/usr/bin/env python
# -*- coding:utf-8 -*-
file = open("001.txt",'r')
try:
  while True:
      line = file.readline() #一行一行往下讀
      if line:
          print "line=",line
      else:                 #讀完,跳出
          break
finally:                    #finally關閉文件
    file.close()
    
wh@WHdeMacBook-Pro:/tmp$/usr/bin/python 003.py  #執行結果
line= 用起伏的背影 擋住哭泣的心
line= 有些故事 不必說給 每個人聽
line= 許多眼睛 看的太淺太近
line= 錯過我沒被看見 那個自己
line= 用簡單的言語 解開超載的心
line= 有些情緒 是該說給 懂的人聽
line= 你的熱淚 比我激動憐惜
line= 我發誓要更努力 更有勇氣

4.readlines() 返回列表

關於readlines()方法:
1、一次性讀取整個文件。
2、自動將文件內容分析成一個行的列表。

wh@WHdeMacBook-Pro:/tmp$cat 004.py 
#!/usr/bin/env python
# -*- coding:utf-8 -*-
file = open("001.txt",'r')
try:
  lines = file.readlines()
  print "type(lines)=",type(lines)
  for line in lines:
      print "line=",line  
finally:
    file.close()
wh@WHdeMacBook-Pro:/tmp$/usr/bin/python 004.py 
type(lines)= <type 'list'>
line= 用起伏的背影 擋住哭泣的心
line= 有些故事 不必說給 每個人聽
line= 許多眼睛 看的太淺太近
line= 錯過我沒被看見 那個自己
line= 用簡單的言語 解開超載的心
line= 有些情緒 是該說給 懂的人聽
line= 你的熱淚 比我激動憐惜
line= 我發誓要更努力 更有勇氣

5.with open(“001.txt”,‘r’,encoding=‘utf-8’) as f:

按說with open() as f 與上面不是並列關係,而是用這種形式,會自動close文件,無需”file.close()”,該形式經常與上述幾種形式配合使用
詳細對比可查看:對比鏈接

wh@WHdeMacBook-Pro:/tmp$cat 005.py 
#!/usr/bin/env python
# -*- coding:utf-8 -*-
with open('001.txt', 'r') as f:
    print(f.read())
wh@WHdeMacBook-Pro:/tmp$/usr/bin/python 005.py 
用起伏的背影 擋住哭泣的心
有些故事 不必說給 每個人聽
許多眼睛 看的太淺太近
錯過我沒被看見 那個自己
用簡單的言語 解開超載的心
有些情緒 是該說給 懂的人聽
你的熱淚 比我激動憐惜
我發誓要更努力 更有勇氣
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章