Python中read()、readline()、readlines()对比

2,375 阅读1分钟

read()

读取整个文件,将文件内容放到一个字符串变量中。 read()直接读取字节到字符串中,包括了换行符

可通过read().splitlines()方法将字符串转化list

splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

with open('file.txt','r') as  f:
    a = f.read()
    print(type(a))
    print(a)
    b = a.splitlines()
    print(b)
    
打印结果
<class 'str'>
name: Jack   ;    salary:  12000
 name :Mike ; salary:  12300
 ['name: Jack   ;    salary:  12000', ' name :Mike ; salary:  12300']

readline()

readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存

with open('file.txt','r') as f:
    while True:
        text_line = f.readline()
        if text_line:
            print(type(text_line), text_line)
        else:
            break
    
打印结果
<class 'str'> name: Jack   ;    salary:  12000

<class 'str'>  name :Mike ; salary:  12300

readlines()

一次性读取整个文件;自动将文件内容分析成一个行的列表。

可通过.strip('\n')方式去除掉换行符

with open('file.txt','r') as f:
    a = f.readlines()
    print(type(a))
    print(a)
    b = []
    for line in a:
        line = line.strip('\n')
        b.append(line)
    print(b)

    
打印结果
<class 'list'>
['name: Jack   ;    salary:  12000\n', ' name :Mike ; salary:  12300\n']
['name: Jack   ;    salary:  12000', ' name :Mike ; salary:  12300']