首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

python积累--读写文本文件实例(4)

python积累--读写文本文件实例(4)

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。
如果文件较大,可以按字节读取或按行读取。
使用文件迭代器进行逐行迭代。
返回列表