根据输入从CSV文件中检索特定行

时间:2014-01-22 19:29:02

标签: python

目前我有一个程序可以从CSV文件中检索所有信息并输出如下:

['USER', 'PASS', 'INFO']
['example', 'pass', 'Apple']
['example1', 'pass1', 'Banana']
['example2', 'pass2', 'Strawberry']

我正在使用的代码是:

import csv

username = input("Username... ")

with open('data.csv', 'rt') as f:
reader = csv.reader(f)
for row in reader:
    print(row)

我想要做的是根据CSV文件中列出的用户名检查用户输入,如果匹配,则打印相应的INFO值。因此,如果用户名变量是example1,那么将打印Banana。有没有办法做到这一点,类似于MySQL等。

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您只需匹配一次,只需循环访问CSV文件并测试每一行:

with open('data.csv', 'rt') as f:
    reader = csv.reader(f)
    for row in reader:
        if row[0] == username:
            print(row)

如果您需要更频繁地引用代码中的不同用户名,并且CSV不是很大,请使用字典:

with open('data.csv', 'rt') as f:
    reader = csv.reader(f)
    usernames = {r[0]: r for r in reader}

print usernames[username]