readlines()方法
readlines()方法读取整个文件所有行,保存在一个列表(list)变量中,每次读取一行,但读取大文件会比较占内存。
f = open("sxl.txt")
lines = f.readlines()
for line in lines:
print (line)
print(type(line))
f.close()
输出结果:
i like the movie
<class 'str'>
i ate an egg
<class 'str'>
readlines()一次性读取文本的所有内容,结果是一个list
这种方法读取的文本内容,每行文本末尾都会带一个’\n’换行符 (可以使用L.rstrip(’\n’)去掉换行符)
readlines()的利端:
一次性读取文本内容,速度比较快
readlines()的弊端:
随着文本的增大,占用内存会越来越多
最后还有一种方式,与第三种方法类似。
f = open("sxl.txt")
print (type(f))
for line in f:
print (line)
print(type(line))
f.close()
输出结果:
<class '_io.TextIOWrapper'>
i like the movie
<class 'str'>
i ate an egg
<class 'str'>
#写文件
写文件使用 write 方法,如下:
with open('/Users/ethan/data2.txt', 'w') as f:
f.write('one\n')
f.write('two')
如果上述文件已存在,则会清空原内容并覆盖掉;
如果上述路径是正确的(比如存在 /Users/ethan 的路径),但是文件不存在(data2.txt 不存在),则会新建一个文件,并写入上述内容;
如果上述路径是不正确的(比如将路径写成 /Users/eth ),这时会抛出 IOError;
如果我们想往已存在的文件追加内容,可以使用 ‘a’ 模式,如下:
with open('/Users/ethan/data2.txt', 'a') as f:
f.write('three\n')
f.write('four')
#小结
推荐使用 with 语句操作文件 IO。
如果文件较大,可以按字节读取或按行读取。
使用文件迭代器进行逐行迭代。 |