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 
用起伏的背影 挡住哭泣的心
有些故事 不必说给 每个人听
许多眼睛 看的太浅太近
错过我没被看见 那个自己
用简单的言语 解开超载的心
有些情绪 是该说给 懂的人听
你的热泪 比我激动怜惜
我发誓要更努力 更有勇气
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐