CSV文件仅匹配首个结果问题:如何输出全部用户好友请求?
解决CSV多好友请求仅显示第一条的问题
你的代码问题出在找到第一个匹配的请求后立刻执行了return row[0],这会直接终止函数,导致循环无法继续遍历后续的CSV行,所以只输出了第一条请求。
修改方案
- 移除循环内的
return语句,让循环能完整遍历所有行 - 新增一个变量记录是否找到匹配的请求,最后根据这个变量决定是否输出"No request found"
修改后的代码
import os import csv def get_request(user): if not os.path.exists('friends_req.csv'): open('friends_req.csv','w').close() # 标记是否找到请求 request_found = False with open('friends_req.csv','r+') as d: reader = csv.reader(d) for row in reader: if row[1] == user: print(f'You have a friend request from {row[0]}') request_found = True # 遍历完所有行后判断是否有请求 if not request_found: print("No request found for this user")
测试效果
用你提供的CSV内容:
u,user g,user
调用get_request('user')后,会输出:
You have a friend request from u You have a friend request from g
如果用户没有匹配的请求,才会输出"No request found for this user"。
内容的提问来源于stack exchange,提问作者estakkk
相关产品推荐
相关产品推荐

