我有很大的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;补偿" (这是许多其他词中的第三列)。
有谁知道需要做出哪些改变?我整个上午都在搜索谷歌,但是我还没有找到类似的问题或答案。
答案 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)