目录:
Python readline()
函数Python readlines()
函数限制读取大小 实际应用场景
首先,我们需要一个示例文件 shanhai_moyuren.txt
,假设其内容如下:
摸鱼山海
readline函数
Python readline()
函数
readline()
函数用于每次读取文件中的一行。如果省略参数,则读取到行尾的换行符 \n
。如果有参数,则指定读取的最大字符数。
代码示例
# 打开文件
with open('shanhai_moyuren.txt', 'r', encoding='utf-8') as f:
# 读取第一行
line = f.readline()
print(line) # 输出结果:Python教程\n
# 再读取第二行
line = f.readline()
print(line) # 输出结果:readline函数
print('-----')
# 尝试读取第三行(此时文件指针位于文件末尾)
line = f.readline()
print(line) # 输出结果:空字符串''
解释
with open('shanhai_moyuren.txt', 'r', encoding='utf-8') as f:
使用with
语句自动管理文件的打开和关闭。f.readline()
读取一行,包括行尾的换行符(如有)。当文件读取完毕后,再次调用 readline()
返回空字符串。
Python readlines()
函数
readlines()
函数用于一次性读取文件中的所有行,并将每行作为一个元素存入列表中返回。
代码示例
# 打开文件并一次性读取所有行
with open('shanhai_moyuren.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
# 遍历所有行
for line in lines:
print(line) # 输出结果:摸鱼山海\nreadline函数
解释
f.readlines()
一次性读取所有行,返回一个列表。列表中的每个元素都是文件中的一行,包括行尾的换行符(如有)。
限制读取大小
在某些情况下,我们需要限制每次读取的最大字符(字节)数,这时可以用 readline()
的参数来实现。如果文件以文本模式打开,则按字符数读取;如果文件以二进制模式打开,则按字节数读取。
# 限制每次读取的字符数
with open('shanhai_moyuren.txt', 'r', encoding='utf-8') as f:
while True:
line = f.readline(3) # 每次读取最多3个字符
if not line:
break
print(line) # 输出可能不完整的一行
解释
f.readline(3)
限制每次读取最多3个字符。如果读取的字符不足3个,则读取到行尾。 当文件读取完毕时, readline()
返回空字符串,跳出循环。
实际应用场景
在处理大量日志文件或需要逐行处理文件内容时,readline()
和 readlines()
都非常有用。例如,在分析网站访问日志时,我们可以逐行读取并处理每一条记录。
扩展示例
# 假设日志文件 log.txt 包含多条访问记录
with open('log.txt', 'r', encoding='utf-8') as log_file:
# 使用 readlines() 获取所有行
lines = log_file.readlines()
# 计算特定用户访问次数
user_visits = {}
for line in lines:
parts = line.strip().split() # 分割每行数据
user = parts[0] # 假设用户ID在每行的第一个位置
if user in user_visits:
user_visits[user] += 1
else:
user_visits[user] = 1
# 输出结果
for user, visits in user_visits.items():
print(f'{user} 访问了 {visits} 次')
解释
使用 readlines()
一次性读取所有行,并分割每行数据。统计每个用户的访问次数。 输出统计结果。