python - 使用 for 循环时如何查找 CSV 文件中的行中是否存在列表中的任何元素

标签 python loops csv for-loop

import csv

with open('example.csv', 'r') as f:
    csvfile = csv.reader(f, delimiter = ',')

    client_email = ['@example.co.uk', '@moreexamples.com', 'lastexample.com']

    for row in csvfile:
        if row not in client_email:
            print row

假设代码已正确格式化为 block ,当我复制粘贴时,它无法正确翻译。我创建了一个公司电子邮件域名列表(如示例中所示),并且创建了一个循环来打印 CSV 中列表中不存在的每一行。 CSV 文件中的其他列包括名字、名字、公司名称等,因此不仅限于电子邮件。

问题是当我测试时,它正在打印列表中包含电子邮件的行,即 jackson@example.co.uk。

有什么想法吗?

最佳答案

在您的示例中,row 指的是字符串列表。因此,每一行都是['First name', 'Second name', 'Company Name'] 等。

您当前正在检查是否有任何列恰好是 client_email 中的元素之一。

我怀疑您想要检查任何列的文本是否包含 client_email 中的元素之一。

您可以使用另一个循环:

for row in csvfile:
    for column in row:
        # check if the column contains any of the email domains here
        # if it does:
            print row
            continue

要检查一个字符串是否包含另一个列表中的任何字符串,我经常发现这种方法很有用:

s = "xxabcxx"
stop_list = ["abc", "def", "ghi"]
if any(elem in s for elem in stop_list):
    pass

关于python - 使用 for 循环时如何查找 CSV 文件中的行中是否存在列表中的任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49258269/

相关文章:

python-3.x - tensorflow : Using Queue for CSV file with custom Estimator and "input_fn" function

python - 从嵌入式 Python 脚本导入模块

python - 如何根据高斯分布制作环

php - 如何在 php 中执行许多 curl 请求时实践良好的道德规范

java - while 循环之外的 ArrayList 未更新

python - 如何将 Python 元组转换为 .csv 文件?

python - 在 plt.plot() 命令之外定义绘图标签 - Matplotlib

python - 使用 pyparsing 接受直到 "more than 1 white space"的所有内容

php - 合并两个二维数组中的一列并删除重复项

postgresql - 如何将 PostgreSQL 查询输出导出到 csv 文件