我想搜索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)
| 归档时间: |
|
| 查看次数: |
48460 次 |
| 最近记录: |