擅长:python、mysql、java
<p>当您使用<code>user in names</code>测试成员身份时,Python会在文件的行上迭代,并将<code>user</code>与每一行进行比较</p>
<p>这里的问题是换行符<code>\n</code>包含在行尾,因此您的姓名不匹配</p>
<p>所以,在比较之前,你必须去掉这条新行的行,比如:</p>
<pre><code>with open('nlist.txt') as names:
if any(user == line.strip() for line in names):
print('User exists')
</code></pre>
<p>还请注意,我是以读取模式打开文件的(默认为<code>'r'</code>)。您在附加模式下打开了它,将指针放在文件的末尾。因为没有更多的东西要读,你的支票总是会失败的</p>