Python 如何使用csv模块在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)
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)
哦,非常感谢你。这就是我以前的解决方案不起作用的原因。