Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用csv模块在csv列中搜索特定单词_Python_Python 3.x_Csv - Fatal编程技术网

Python 如何使用csv模块在csv列中搜索特定单词

Python 如何使用csv模块在csv列中搜索特定单词,python,python-3.x,csv,Python,Python 3.x,Csv,我有一个csv文件,我只想从中搜索一列的文本。如果我在“敏捷的棕色狐狸跳过懒狗”列中有一行文本,我在“文本”列中搜索“狗”,我应该打印该行。以下是我到目前为止一直在努力改进的地方 def read(option, searchitem): if option == "text": csvfile=open('myfile.csv','r') for row in csvfile: if row[2].find(searchitem)

我有一个csv文件,我只想从中搜索一列的文本。如果我在“敏捷的棕色狐狸跳过懒狗”列中有一行文本,我在“文本”列中搜索“狗”,我应该打印该行。以下是我到目前为止一直在努力改进的地方

def read(option, searchitem):
    if option == "text":
        csvfile=open('myfile.csv','r')
        for row in csvfile:
            if row[2].find(searchitem):
                print(row)
但是我文件中的所有行都在打印。我已经尝试过查看类似的问题并应用它们,但没有效果。

find()
如果找到匹配项,则返回匹配项字符串中的索引,否则返回
-1
。在Python中,正数和负数都被认为是
True
,而
0
是唯一被认为是
False
的数字。因此,
any_string.find(anyItem)
将始终计算为
True
(因此所有行都将被打印)

要检查子字符串是否存在于另一个字符串中(或与之相等),可以使用中的

如果第[2]行中的searchitem:
打印(行)

我用奥利弗的建议改进了我先前的想法,并收到了预期的结果

def读取(选项,搜索项): 将open('text.csv','r')作为csvfile:

    # get number of columns
    for line in csvfile.readlines():
        array = line.split(',')
        first_item = array[0]

    num_columns = len(array)
    csvfile.seek(0)

    reader = csv.reader(csvfile)
    included_cols = [4]

    for row in reader:
        content = list(row[i] for i in included_cols)
        for item in content:
            if searchitem in item:
                print(row)

哦,非常感谢你。这就是我以前的解决方案不起作用的原因。