python - 在 Python 中写入空文件之前如何检查条件?

标签 python python-3.x

我需要读取 data.csv 中的所有行,如果 City 列的值为 Los Angeles,那么它会将该行添加到 match.csv,但我不希望它创建带有标题的 match.csv如果 data.csv 的“城市”列中没有包含洛杉矶的行,则为空行。我该怎么做?

with open("data.csv", 'r') as input_file, open("match.csv", 'w') as output_file:
    data_reader = csv.DictReader(input_file)
    match_write = csv.DictWriter(output_file, delimiter=',', fieldnames=data_reader.fieldnames)
    match_write.writeheader()
    for row in data_reader:
        if row['City'] == "Los Angeles":
            match_write.writerow(row)

最佳答案

如果您只是不想创建 header ,并且可以使用空文件,那么在洛杉矶的第一个实例之前不要创建编写器。例如,除非有包含 Los Angeles 的行,否则不会将 header 添加到文件 match.csv 中:

match_write = None

with open("data.csv", 'r') as input_file, open("match.csv", 'w') as output_file:
    data_reader = csv.DictReader(input_file)
    for row in data_reader:
        if row['City'] == "Los Angeles":
            if match_write is None:
                match_write = csv.DictWriter(output_file, delimiter=',', fieldnames=data_reader.fieldnames)
                match_write.writeheader()
            match_write.writerow(row)

但是,如果除非存在洛杉矶实例,否则根本不应该创建 match.csv 文件,那么在第一个实例之前也不应打开该文件。

output_file = None

with open("data.csv", 'r') as input_file:
    data_reader = csv.DictReader(input_file)
    for row in data_reader:
        if row['City'] == "Los Angeles":
            if output_file is None:
                output_file = open("match.csv", 'w')
                match_write = csv.DictWriter(output_file, delimiter=',', fieldnames=data_reader.fieldnames)
                match_write.writeheader()
            match_write.writerow(row)

if output_file is not None:
    output_file.close()

关于python - 在 Python 中写入空文件之前如何检查条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53464118/

相关文章:

python - 对我来说渲染(或以任何方式以图形方式表示)邻接矩阵的最简单方法是什么

Python 3.5 导入错误 : dynamic module does not define module export function (PyInit_cv2)

python - 使用 Altair 直接标记线图

python - 如何使用电子表格中的两个不同列制作分组条形图?

python - 当我使用生成器表达式和迭代器从网格上的常规网格插入数据 >2000 次时,我收到 MemError

python - 将字典添加到sortedDict

python - 通过给出国家/地区名称和分割将 UTC 转换为本地时间

python - 对 Python doctests 的多版本支持

python - 不确定如何修复此错误 Luhn 算法 PYTHON

python - 无法在 docker mysql 容器中安装 mysqlclient