read()方法是读取整个文件或指定字节数(字符数),返回str(字符串)类型。
readline()方法读取当前一行,返回str类型。
readlines()方法读取所有行,按照行分割为列表,返回list[str]。
我们来看一些例子:
read()示例
with open('test.txt', 'r', encoding='utf-8') as f: content = f.read() print(content)with open('test.txt', 'r', encoding='utf-8') as f: content = f.read(5) print(content)
readline()示例:
with open('test.txt', 'r', encoding='utf-8') as f: line = f.readline() print(line) line = f.readline() print(line)
对于需要实现逐行读取的功能时,其实有更Pythonic的方式:
with open('test.txt', 'r', encoding='utf-8') as f: for line in f: print(line)
这种方式是内部自动调用readline()方法,且自带缓冲,性能也更好。
readlines()示例:
with open('test.txt', 'r', encoding='utf-8') as f: lines = f.readlines() print(lines[0])
总的来说,如果读取整个小文件,可以用read()方法;如果要手动控制单行,可以用readline()方法;如果需要随机访问某一行,可以用readlines()方法。
read()和readlines()方法不建议在读取大文件时使用,读取大文件使用迭代文件对象的方式,即for line in f,是最佳实践。