在textfile中搜索用户名

时间:2018-01-31 16:41:56

标签: python python-3.x

我在文本文件中查找用户名时需要帮助,以便用户输入尚未存储在文件中的用户名。

文本文件如下所示:

aaa12 aaa12
aaa16 aaa16
iii12 iii12 

代码:

    username=input("Enter a username:")
    with open("users.txt") as openfile:
        for line in openfile:
           for part in line.split():
              if username in part:
                 print("Try again")

我觉得它不起作用。我可以使用其他任何解决方案吗?

3 个答案:

答案 0 :(得分:2)

您可以直接对字符串(in此处)进行__contains__line)测试,无需split - 并制作列表:< / p>

for line in openfile:
    if username in line:               
        print("Try again")
        break

对于白色分隔的用户名(如示例所示),每个用户名都是完整匹配:

for line in openfile:
    if username in line.split():
        print("Try again")
        break

请注意,匹配用户名永远不会是完美的。如果简单匹配不起作用,那么你可能应该首先考虑选择合适的容器而不是进行文本处理。

答案 1 :(得分:1)

你重复检查次数太多了 - 你在途中,但我建议先收集,然后检查:

users = set()
with open("users.txt") as openfile:
    for line in openfile:
        users.update(line.split())
        #Another way:
        #for user in line.split():
            #users.add(user)

first = True
while first or (username in users):
    if not first: print("Try again, exists!")
    username=input("Enter a username:")
    first = False

答案 2 :(得分:0)

username=input("Enter a username:")
exists = False
with open("users.txt") as openfile:
  for line in openfile:
   if username in line:
    exists = True

if not exists:
  print("Try again")

如果您在文本文件中有多行中的用户名,则会处理此问题。基本上,你不需要在蟒蛇中分裂所有的箍,这真的是一种美。