首页 > 解决方案 > Python csv阅读器,优雅地检查丢失的标题

问题描述

我正在阅读一个 csv 文件,如下所示:

标题1 标题2
第一的 第 1 行
第二 第 2 行

现在我需要根据我的inc_headers.

inc_headers = ['HEADER1','HEADER2','HEADER3']

def validatefields():
    inc_missing = []
    incident_reader = csv.DictReader(open(incident_path))
    for line in incident_reader:
        for field in inc_headers:
            if line[field]:
                pass
            else:
                inc_missing.append(field)
            continue
        break

在上面的示例中,我正在尝试查看 HEADER3 是否存在,它应该只是将 附加fieldinc_missing列表中。相反,程序因错误而中断。该程序完全崩溃,不再遵循elseorexcept子句。我也试过try下面的语法,它仍然会抛出一个错误。如何优雅地捕获此错误?

try:
    x = line[field]
except:
    ....

标签: python

解决方案


下面的代码块将解决该问题。参考这个

sys.tracebacklimit = 0
try: 
    line[field]
except Exception as e:
    inc_missing.append(field)

推荐阅读