python - 在表的特定列中搜索不匹配的项目

标签 python csv comparison

with open("test.txt", "r") as test:
    reader = csv.reader(test, delimiter="\t")
    writer = csv.writer(table, delimiter="\t")
    for row in reader:
       for field in row:
            if field not in keywords:
                writer.writerow(row)
                break

这段代码似乎多次写出每一行。我猜它会查找每一列中的每个字段。如何指定单个列?

所以这是我现在正在使用的代码,它似乎遗漏了几行,其中关键字不存在于任何列中。

table = open("table.txt", "w")
with open("test.txt", "r") as test:
    reader = csv.reader(test, delimiter="\t")
    writer = csv.writer(table, delimiter="\t")
    for row in reader:
        if all(field not in keywords for field in row):
            writer.writerow(row)

最佳答案

然后您可以使用 zip 获取您的列。您可以在 all 函数中使用生成器表达式来检查所有元素是否满足条件:

with open("test.txt", "r") as Spenn,open("test.txt", "r") as table:
    reader = zip(*csv.reader(Spenn, delimiter="\t"))
    writer = csv.writer(table, delimiter="\t")
    for row in reader:
        if all(field not in keywords for field in row):
            writer.writerow(row)

但是如果你只想写满足条件的行你可以使用下面的代码:

with open("test.txt", "r") as Spenn,open("test.txt", "r") as table:
    reader = csv.reader(Spenn, delimiter="\t")
    writer = csv.writer(table, delimiter="\t")
    for row in reader:
        if all(field not in keywords for field in row):
            writer.writerow(row)

关于python - 在表的特定列中搜索不匹配的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29939251/

相关文章:

python - 将 python 命名元组写入 csv 以防止 UnicodeEncodeError

attributes - LDAP 比较属性

c# - 如何衡量两个字符串之间的相似度?

python - Anki 网页抓取脚本

python - 如何在 Python 中仅将字符串的特定部分转换为大写?

python - 将 PyTorch 模型与 CoreML 一起使用时的输入维度 reshape

python - 请求.exceptions.SSLError

python 将 csv 文件读取为字典并排序和递增计数器

将复杂的 json 转换为 csv 的 Python 程序,适合初学者

python - 迭代项目列表并将它们分组到具有相似度分数的字典中的最快方法是什么