【问题标题】:Python: how to print only the lines that are true from csv filePython:如何仅打印来自 csv 文件的真实行
【发布时间】:2021-04-06 10:42:39
【问题描述】:

如上所述。这是我的 csv 文件:

class, time, duration, building

math, 10:55, 2hr, B01

religion, 3:45, 2hr, B02

PDHPDE, 12:05, 2hr, B03

history, 1:00, 2hr, B04

history extension, 11:00, 2hr, B05

我希望结果只是从我使用的这段代码中打印出来的 1 行

import csv

with open('sched.csv') as csvfile:

    sched = csv.reader(csvfile, delimiter=',')

    for row in sched:
        a = row[1]
        print(a == '10:55')

但是,我的输出是:

False

False

True

False

False

我只想将“真”行打印为“math, 10:55, 2hr, B01”

【问题讨论】:

  • 您想使用 if 语句。现在你只需说打印每一行检查的布尔结果

标签: python csv filter


【解决方案1】:

应该是:

import csv

with open('sched.csv') as csvfile:

    sched = csv.reader(csvfile, delimiter=',')

    for row in sched:
        a = row[1]
        if (a == '10:55'):
            print(row)

与其打印 (a == '10:55') 的结果(每行为真或假),您应该检查它是否为真,然后打印整行。

【讨论】:

    【解决方案2】:

    只需添加一个 if。

    我认为这样的事情会起作用

    import csv
    
    with open('sched.csv') as csvfile:
    
        sched = csv.reader(csvfile, delimiter=',')
    
        for row in sched:
            a = row[1]
            if a == '10:55':
                print(a == '10:55')
    

    【讨论】:

      猜你喜欢
      • 2016-09-02
      • 2013-02-12
      • 2017-04-24
      • 1970-01-01
      • 2019-08-28
      • 2021-08-20
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多