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
用起伏的背影 擋住哭泣的心
有些故事 不必說給 每個人聽
許多眼睛 看的太淺太近
錯過我沒被看見 那個自己
用簡單的言語 解開超載的心
有些情緒 是該說給 懂的人聽
你的熱淚 比我激動憐惜
我發誓要更努力 更有勇氣