【问题标题】:Python: Check if given value exist in csv filePython:检查给定值是否存在于csv文件中
【发布时间】:2020-11-04 20:37:53
【问题描述】:

我想写一个函数,如果给定的值存在于 csv 文件中,则返回。

如果是,我想打印那行。

如果不是我想打印“没有匹配的行”

class Schronisko:
plik=''
def __init__(self, plik):
    self.plik = plik
def wyszukajPoImiePsa(self, ImiePsa):
        wynik = ''
        tresc = csv.reader(open(self.plik, 'r'), delimiter=';')
        for wiersz in tresc:
            if wiersz[0] == ImiePsa:
                wynik = ';'.join(wiersz) + '\n'
        if ImiePsa not in wiersz[0]:
                print ("zle")
        print(wynik)

我检查 csv 文件中是否有匹配值时的当前输出

zle
Lala;Chart;4;2020-11-04

没有匹配值时我的输出

 zle

所以问题是我不希望函数打印'zle',即使给出了匹配值。

那里可能有什么问题?

我的 CSV 文件:

Dsac;Chart;2;2020-11-04
Dsac;Chart;3;2020-11-04
Dsac;Chart;4;2020-11-04
Lala;Chart;4;2020-11-04
Sda;Chart;4;2020-11-04
Sda;X;4;2020-11-04
Sda;Y;4;2020-11-04
pawel;Y;4;2020-11-04

【问题讨论】:

    标签: python python-3.x csv


    【解决方案1】:

    也许for else 可以解决这个问题:

    class Schronisko:
        plik=''
        def __init__(self, plik):
            self.plik = plik
        def wyszukajPoImiePsa(self, ImiePsa):
            wynik = ''
            tresc = csv.reader(open(self.plik, 'r'), delimiter=';')
            for wiersz in tresc:
                if wiersz[0] == ImiePsa:
                    wynik = ';'.join(wiersz) + '\n'
                    break
            else:
               print ("zle")
            print(wynik)
    

    【讨论】:

    • @BłażejBatko 不用担心。 break 声明是必不可少的。
    猜你喜欢
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    相关资源
    最近更新 更多