要读取的文件位置:C:/Users/x84106976/Desktop/test1.txt
文件内容:
my name is xiaozhen
my age is 24
today is a sunny day
1. read([size])方法:注意size是可选的
read([size]):从文件中当前位置读取size个字节,若没有参数,则表示读取至结束为止,返回为字符串对象(整个读取的内容为一个字符串)
但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理
f = open("C:/Users/x84106976/Desktop/test1.txt", 'r')
lines = f.read()
print lines
print(type(lines))
f.close()
2. readline()方法
readline()和readlines()方法相似,但是.readline()每次只读取一行,通常比 .readlines()慢得多
line不就是行的意思嘛,因为该方法每次读出一行内容,所以,读取时占用内存比较小,比较适合大文件。
注意,仅仅文件内容一次放不下内存的时候,才会使用readline(),其实主要还是它慢
函数返回一个字符串对象。
通过readline输出,对于比较大的文件,这种占用内存比较小。
#coding:utf-8
f = open('poem.txt','r')
result = list()
for line in open('poem.txt'):
line = f.readline()
print line
result.append(line)
print result
f.close()
open('result-readline.txt', 'w').write('%s' % '\n'.join(result))
3. readlines()方法
读取整个文件的所有行,保存在一个list变量中,该列表可以由 Python 的 for... in ... 结构进行处理,
每行最为一个元素,但读取大文件的时候比较占用内存。
#coding:utf-8
'''cdays-4-exercise-6.py 文件基本操作
@note: 文件读取写入, 列表排序, 字符串操作
@see: 字符串各方法可参考help(str)或Python在线文档http://docs.python.org/lib/string-methods.html
'''
f = open('C:/Users/x84106976/Desktop/test1.txt', 'r') #以读方式打开文件
result = list()
for line in f.readlines(): #依次读取每行
line = line.strip() #去掉每行头尾空白
if not len(line) or line.startswith('#'): #判断是否是空行或注释行
continue #是的话,跳过不处理
result.append(line) #保存
result.sort() #排序结果
print result
open('cdays-4-result.txt', 'w').write('%s' % '\n'.join(result)) #保存入结果文件
4. 补充:linecache模块
有特殊需求可以使用linecache模块,比如你要输出的是某个文件的第n行。
扫描二维码关注公众号,回复:
2602183 查看本文章
import linecache
# 注意getline方法的参数,第一是文件位置,第二个是你要获取的行
text = linecache.getline('C:/Users/x84106976/Desktop/test1.txt', 2)
print text