python 教程:read(),readline() 和 readlines() 比较

python 教程:read(),readline() 和 readlines() 比较[Python常见问题]

共同点:均可接受一个变量用以限制每次读取的数据量,但通常不使用

区别:

read() 【即 fileObject().read( [size] ) 】

特点:读取整个文件,将文件内容放在一个字符串变量中。

劣势:如果文件非常大,尤其大于内存时,无法使用read()方法。

with open(r"../learn_file/file_to_read.txt", encoding="utf-8", mode="r") as fb:
    content = fb.read()
    print(type(content))
    print(content)
# 输出:
# <class "str">
# line 1: Hello, Mike.
# line 2: Nice to meet you. I"m Nick.
# line 3: Welcome to Shenzhen.
# line 4: Thx, it is really a beautiful city. I enjoy my time here.
# line 5: It is. Shall we go for some coffee this afternoon.
# line 6:Sure. And I want to discuss some details about the project we"re going to work for

readline() 【即 fileObject.readline( [size] ),[size]表示可选参数。】

特点:从文件中一行一行地整行读取数据,如果指定了一个非负数的参数,则返回指定大小的字节数。

缺点:比readlines()慢得多

#Python学习交流群:778463939

with open(r"../learn_file/file_to_read.txt", encoding="UTF-8", mode="r+") as fb:
    while True:
        content = fb.readline().replace("
", "")
        # content = fb.readlines()
        # if not content:
        #     break
        if content:
            print(type(content), content)
        else:
            break
        # print(type(content))
        # print(type(content), content)
    print(fb.name)
# 输出:
# <class "str"> line 1: Hello, Mike.
# <class "str"> line 2: Nice to meet you. I"m Nick.
# <class "str"> line 3: Welcome to Shenzhen.
# <class "str"> line 4: Thx, it is really a beautiful city. I enjoy my time here.
# <class "str"> line 5: It is. Shall we go for some coffee this afternoon.
# <class "str"> line 6:Sure. And I want to discuss some details about the project we"re going to work for.
# ../learn_file/file_to_read.txt

readlines() 【即 fileObject.readlines( [sizeint] ),[sizeint] 表示可选参数】

特点:从文件一次读取所有行并返回列表,若给定sizeint > 0,返回总和大约为sizeint字节的行

with open(r"../learn_file/file_to_read.txt", encoding="utf-8", mode="r") as fb:
    content = fb.readlines()
    print(type(content))
    for line in content:
        print(type(line), line.replace("
", ""))
# 输出
# <class "list">
# <class "str"> line 1: Hello, Mike.
# <class "str"> line 2: Nice to meet you. I"m Nick.
# <class "str"> line 3: Welcome to Shenzhen.
# <class "str"> line 4: Thx, it is really a beautiful city. I enjoy my time here.
# <class "str"> line 5: It is. Shall we go for some coffee this afternoon.
# <class "str"> line 6:Sure. And I want to discuss some details about the project we"re going to work for.