首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >找到匹配的Python CSV读取器搜索字符串

找到匹配的Python CSV读取器搜索字符串
EN

Stack Overflow用户
提问于 2018-08-04 02:55:35
回答 2查看 60关注 0票数 0

带着另一个问题再次回来。

前言:使用Qt Designer,搜索按钮,解析csv数据,并使用找到的数据构建我的TableWidget。

我有一个文件,它有两个相似的结果,例如,一个位置被标记为Reddit (North)和Reddit (South)。如果我搜索Reddit,只显示第一个结果,但当我再次按下搜索按钮时,它只显示第一个查找,而不是第二个。

问题:如何在第一次匹配时停止csv阅读器,在表格中填入从第一次命中找到的数据,然后再次点击搜索按钮以清除第一次命中并显示第二次命中?

代码语言:javascript
复制
def search(self):
    self.table_search.setRowCount(6)
    self.table_search.setColumnCount(1)
    self.table_search.verticalHeader().setDefaultSectionSize(20)
    self.table_search.verticalHeader().setVisible(True)
    self.table_search.setVerticalHeaderLabels([
                            'Location ID:', 
                            'Location Name:', 
                            'Cost Center:', 
                            'Street Address:', 
                            'City:', 
                            'State:']
    )

    # taking input from a PyQt line edit box
    search = self.lineedit_locsearch.text()
    search_string = search.strip().upper() # stripping white space from the string

    # containers for specific data from the csv file
    locid = ''
    locname = ''
    loccost = ''
    locaddress = ''
    loccity = ''
    locstate = ''

    with open('data/loc.csv', "r") as locdata:
        reader = csv.reader(locdata)

        for row in reader: 
            for field in row: 
                if field == search_string: 
                    locid = row[0]
                    locname = row[1]
                    loccost = row[2]
                    locaddress = row[3]
                    loccity = row[4]
                    locstate = row[5]

    locdata.close()


    self.table_locsearch.setItem(0, 0, QtWidgets.QTableWidgetItem(locid))
    self.table_locsearch.setItem(1, 0, QtWidgets.QTableWidgetItem(locname))
    self.table_locsearch.setItem(2, 0, QtWidgets.QTableWidgetItem(loccost))
    self.table_locsearch.setItem(3, 0, QtWidgets.QTableWidgetItem(locaddress))
    self.table_locsearch.setItem(4, 0, QtWidgets.QTableWidgetItem(loccity))
    self.table_locsearch.setItem(5, 0, QtWidgets.QTableWidgetItem(locstate))
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51678591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档