You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中readlines()仅匹配TXT文件最后一行的问题求助

问题原因与解决办法

你的问题出在readlines()的读取逻辑上:这个方法会把文件里每行末尾的换行符\n也包含到列表的元素里。比如content[0]实际是'test1\n',而你输入的密码是'test1',两者内容不一样,所以判断不相等;只有最后一行如果没有换行符的话,才会和输入的内容完全匹配。

解决这个问题有两种简单的方式:

方式一:去掉每行的空白字符

读取每行后用strip()方法去掉换行符、空格这类空白字符:

# 用with语句自动管理文件,避免忘记关闭
with open('passwords.txt', "r") as passwords:
    # 遍历每行,去掉首尾空白后存入列表
    content = [line.strip() for line in passwords.readlines()]
userpassword = input()

x = 0  # 替换成你需要判断的索引
if userpassword == content[x]:
    print('same')
else:
    print('different')

方式二:用splitlines()分割内容

直接读取整个文件内容,再用splitlines()按换行分割,这个方法会自动忽略换行符:

with open('passwords.txt', "r") as passwords:
    content = passwords.read().splitlines()
userpassword = input()

x = 0
if userpassword == content[x]:
    print('same')
else:
    print('different')

另外建议用with语句操作文件,它会在代码块结束后自动关闭文件,比直接open更安全可靠。

内容的提问来源于stack exchange,提问作者Delvan Green

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 00:26:03