检查字符串是否为CSV格式

jar*_*121 18 python csv

我想搜索CSV文件并打印True或者False,取决于我是否找到了字符串.但是,我遇到的问题是,如果它找到嵌入在更大的文本字符串中的字符串,它将返回误报.例如:True如果字符串是foo并且术语foobar在CSV文件中,它将返回.我需要能够返回完全匹配.

username = input()

if username in open('Users.csv').read():
    print("True")
else:
    print("False")
Run Code Online (Sandbox Code Playgroud)

我看使用mmap,re并且csv模块的功能,但我还没有得到他们的任何地方.

编辑:这是一种替代方法:

import re
import csv

username = input()

with open('Users.csv', 'rt') as f:
     reader = csv.reader(f)
     for row in reader:
          re.search(r'\bNOTSUREHERE\b', username)
Run Code Online (Sandbox Code Playgroud)

zmo*_*zmo 28

当你看一个CSV文件中使用的csv模块,它会返回每个行作为列的列表.因此,如果要查找字符串,则应修改代码:

import csv

username = input()

with open('Users.csv', 'rt') as f:
     reader = csv.reader(f, delimiter=',') # good point by @paco
     for row in reader:
          for field in row:
              if field == username:
                  print "is in file"
Run Code Online (Sandbox Code Playgroud)

但由于它是一个csv文件,您可能希望用户名位于给定列:

with open('Users.csv', 'rt') as f:
     reader = csv.reader(f, delimiter=',')
     for row in reader:
          if username == row[2]: # if the username shall be on column 3 (-> index 2)
              print "is in file"
Run Code Online (Sandbox Code Playgroud)