为了账号安全,请及时绑定邮箱和手机立即绑定

python csv - 如果第 1 列和第 2 列具有特定值,则打印 CSV 值

python csv - 如果第 1 列和第 2 列具有特定值,则打印 CSV 值

元芳怎么了 2021-10-12 16:11:33
我有以下标题的预订 CSV 文件:名字、姓氏、预订日期、主题、课程时间、班级人数我想阅读 CSV 文件,只打印预订日期为“(特定值)”和课程时间为“(特定值”)的行到目前为止,我的代码是:check_date = "11/01/2019"check_period = "Lesson 3"with open("Bookings.csv") as f:    reader = csv.reader(f)    header = next(reader)    found = False    for line in reader:        if line[2] == check_date and line[4] == check_period:            for line in reader:                print(line)            found = True            break    if not found:        print("No bookings for", check_date, " ", check_period)但是,不是输出日期为“11/01/2019”且课程时间为“第 3 课”的行 - 而是使用此标准打印第一行,忽略其余行,并在此之后打印下一行。下面的屏幕截图:(显示代码、输出和 CSV 示例)
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

尝试删除break内部if语句。随着break你停止迭代通过列表,一旦你找到合适的行


查看完整回答
反对 回复 2021-10-12
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

您的问题在以下部分:


if line[2] == check_date and line[4] == check_period:

            for line in reader:

                print(line)

消除 for line in reader:


你试图在没有进一步检查的情况下继续循环你的数据,这也搞砸了你的外循环


正如 asmox 所提到的,也删除了break声明


查看完整回答
反对 回复 2021-10-12
  • 3 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号