从CSV进行单字搜索,打开多个字

2024-05-13 22:30:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有相当大的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脚本中输入“keyword”,它可以正常工作,因为“keyword”只是单元格中的一个单词。但是我想要的是能够输入并搜索“compensation”这个词(它在很多其他词中的第三列)。你知道吗

有人知道需要做什么改变吗?我在这里搜索了一上午,在谷歌上也搜索了一上午,但没有找到类似的问题或答案。你知道吗


Tags: 文件csvinimport脚本searchopen单词
1条回答
网友
1楼 · 发布于 2024-05-13 22:30:14

与解析csv文件不同,iter遍历所有列并检查其中一个字段是否包含关键字(您应该使用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)

相关问题 更多 >