Python 中有三个紧张的函数可以用来从文件中读取内容:read()、readline() 和 readlines()。它们的差异如下:
read() 函数可以一次性读取全体文件,并返回一个字符串。如果不供应参数,它会读取全体文件。如果供应一个参数 n,它会读取最多 n 个字节的内容。readline() 函数可以从文件中读取一行,并返回一个字符串。如果不供应参数,它会读取整行。如果供应一个参数 n,它会读取最多 n 个字符的内容,但是如果行长超过 n,则只返回前 n 个字符。readlines() 函数可以从文件中读取所有的行,并返回一个列表。如果不供应参数,它会读取所有的行。如果供应一个参数 n,它会读取最多 n 个字符的内容,并且将其作为列表元素。下面是一些大略的例子来解释这三个函数的用法:
如果想要检讨一个字符串是否在文件中,可以利用 read() 函数来读取全体文件,并利用 in 运算符来判断字符串是否在返回的文本中。string = "word"in_file = Falsewith open("example.txt", "r") as f: if string in f.read(): in_file = True print(in_file)#Output: True
如果想要逐行处理文件中的内容,或者从文件中提取某些特定的行,可以利用 readline() 或 readlines() 函数来分别处理每一行或每一行列表。
with open("example.txt") as f: lines = f.readlines() for line in lines: print(line)#Output:#This is the first line#This is the second line#This is the third linewith open("example.txt") as f: lines = f.readlines() for i, line in enumerate(lines): if i % 2 == 0: print(line)#Output:#This is the first line#This is the third line
如果想要获取文件中末了 N 行或前 N 行,可以利用 readlines() 函数来获取所有行列表,并利用切片操作符来获取指定例模内的元素。
n = 5with open("example.txt") as f: last_n_lines = f.readlines()[-n:] print(last_n_lines)#Output:['This is the fifth line', 'This is the sixth line']with open("example.txt") as f: first_n_lines = f.readlines()[n:] print(first_n_lines)#Output:['This is the first line', 'This is the second line', 'This is the third line']