从CSV单字搜索,在一个单元格中有多个单词

时间:2017-10-12 12:30:56

标签: python csv

我有很大的CSV文件,其中包含有关法院判决的数据。我正在尝试创建一个搜索整个CSV文件的脚本,如果找到一个单词,则应将整行复制到新的CSV文件中。

如果每个"单元格中只有一个单词,我设法创建了一个可以执行此操作的脚本。 CSV的情况,对我来说并非如此。

这是我正在处理的Python脚本:

# -*- coding: utf-8 -*-
import sys
import csv
import re

writeFile = open('verdictsOutput.csv', 'wb')
writer = csv.writer(writeFile)

with open('TestDomstol.csv', 'r') as verdictFileInput:
    search = input("Enter keyword: ")
    verdictFileReader = csv.reader(verdictFileInput, delimiter=';')
    for row in verdictFileReader:
        for field in row:
            if field == search:
                writer.writerow(row)

TestDomstol.csv看起来像这样(超过1000个条目):

F1234;2019-09-22;Appeal over the decision bla bla, diaria number X regarding utility easement, compensation in Sweden;Utility easement;keyword

如果我输入"关键字"在我的Python脚本中它工作正常,因为"关键字"只是单元格中的一个单词。但我想要的是能够输入并搜索“#34;补偿" (这是许多其他词中的第三列)。

有谁知道需要做出哪些改变?我整个上午都在搜索谷歌,但是我还没有找到类似的问题或答案。

1 个答案:

答案 0 :(得分:0)

不是解析csv文件,而是覆盖所有列并检查其中一个字段是否包含关键字(你应该使用search in field而不是{anupsabraham指出的==),你也可以保存这里有一些处理能力,检查关键字是否在行中的某个位置并按原样写入行。:

# -*- coding: utf-8 -*-

in_file = 'TestDomstol.csv'
out_file = 'verdictsOutput.csv'
search = raw_input("Enter keyword: ")

with open(in_file, 'r') as verdictFileInput:
    header = verdictFileInput.next()
    with open(out_file, 'wb') as verdictFileOutput:
        verdictFileOutput.write(header)
        for line in verdictFileInput:
            if search in line:
                verdictFileOutput.write(line)