python基础之文件操作 read、readline和readlines

python中有三种函数,用来帮我们实现文件的读取,这三种函数分别是read、readline和readlines

1. read

read函数的作用是读取文件全部内容,逐个字节或者字符读取(指针从开头的位置到结尾的位置),读取的得到的是字符串对象,以可读(r, r+, rb, rb+)模式打开文件

如果文件是二进制模式,那么read是逐个字节读取,而如果是非二进制模式,那么是以字符串逐个读取

with open("test2.txt", "w", encoding="utf-8") as f:
    f.writelines(["关关雎鸠\n", "在河之洲\n", "窈窕淑女\n", "君子好逑\n"])

# read函数
with open("test2.txt", "r", encoding="utf-8") as f:
    file = f.read()
    print(type(file))    # <class 'str'>
    print(file.strip())  # 文件的 读取,我们都习惯要取出文件前面的空格
    """
    关关雎鸠
    在河之洲
    窈窕淑女
    君子好逑
    """

read函数中还有可选参数size,用于指定一次最多可读取的字符串的个数,如果省略,那么一次性读取全部内容,如果指定的数字大于文件内全部的字符或者字节数,它也不会报错,他会全部读取里面的内容

with open("test2.txt", "r", encoding="utf-8") as f:
    file = f.read(10)
    print(type(file))    # <class 'str'>
    print(file.strip())  # 文件的 读取,我们都习惯要取出文件前面的空格
    """
    关关雎鸠
    在河之洲
    """
with open("test2.txt", "r", encoding="utf-8") as f:
    file = f.read(100)
    print(type(file))    # <class 'str'>
    print(file.strip())  # 文件的 读取,我们都习惯要取出文件前面的空格
    """
    关关雎鸠
    在河之洲
    窈窕淑女
    君子好逑
    """

2.readline

readline函数用于读取文件的一行,每次读出一行内容,所以读取占用内存小,适合大文件的读取,读取得到的对象是字符串对象

with open("test2.txt", "r", encoding="utf-8") as f:
    line = f.readline()
    print(type(line))    # <class 'str'>
    print(line)          # 关关雎鸠
# 如果想要读取里面的全部内容,结合while循环
with open("test2.txt", "r", encoding="utf-8") as f:
    line = f.readline()
    while line:
        print(line)
        line = f.readline()

"""

关关雎鸠

在河之洲

窈窕淑女

君子好逑

"""

3.readlines

一次性读取全部内容,读取得到的文件内容是列表对象,读取大文件的时候不推荐使用这种方法

# readlines函数
with open("test2.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()
    print(type(lines))    # <class 'list'>
    for i, line in enumerate(lines, 1):
        print("第{}行:{}".format(i, line))

第1行:关关雎鸠

第2行:在河之洲

第3行:窈窕淑女

第4行:君子好逑

 

posted @ 2020-02-01 10:24  zgzeng  阅读(2413)  评论(0编辑  收藏  举报