为简单列表拆分获取 "list index is out of range"
Getting a "list index is out of range" for a simple list split
我正在尝试将 txt 文档中的行读入列表,但我不断收到消息:IndexError:列表索引超出范围。它指向最后一行 password = usersdoc1.strip() 作为问题。
k = open(filename, 'r')
lines = k.readlines()
for line in lines:
usersdoc=line.strip().split('-')
username = usersdoc[0].strip()
password = usersdoc[1].strip()
我正在阅读的文档在每一行上都有用户名和密码,用“-”分隔,我可以打印 username 和 password 成功,但是当我 运行 我的完整代码时,我只是得到一个错误。我似乎无法弄清楚问题是什么。 Here is the document I am reading
当您的 for
循环到达行时:
Jack
函数 split('-') 仅 returns 具有单个值的列表:“Jack” 所述列表没有索引 [1] 因为它只有一个值,即索引 [0].
要绕过这个问题,您可以根据自己的处理方式做几件事:
完全忽略该行:
for line in lines:
usersdoc=line.strip().split('-')
if len(usersdoc) !== 2:
continue
username = usersdoc[0].strip()
password = usersdoc[1].strip()
创建空密码:
for line in lines:
usersdoc=line.strip().split('-')
username = usersdoc[0].strip()
password = usersdoc[1].strip() if usersdoc[1] else ""
我注意到您可能还没有发现,因为 strip()
出现在 split()
之前,如果 [=28= 之间有空格,您的用户名和密码两边仍然可以有空格] 和破折号。
我正在尝试将 txt 文档中的行读入列表,但我不断收到消息:IndexError:列表索引超出范围。它指向最后一行 password = usersdoc1.strip() 作为问题。
k = open(filename, 'r')
lines = k.readlines()
for line in lines:
usersdoc=line.strip().split('-')
username = usersdoc[0].strip()
password = usersdoc[1].strip()
我正在阅读的文档在每一行上都有用户名和密码,用“-”分隔,我可以打印 username 和 password 成功,但是当我 运行 我的完整代码时,我只是得到一个错误。我似乎无法弄清楚问题是什么。 Here is the document I am reading
当您的 for
循环到达行时:
Jack
函数 split('-') 仅 returns 具有单个值的列表:“Jack” 所述列表没有索引 [1] 因为它只有一个值,即索引 [0].
要绕过这个问题,您可以根据自己的处理方式做几件事:
完全忽略该行:
for line in lines:
usersdoc=line.strip().split('-')
if len(usersdoc) !== 2:
continue
username = usersdoc[0].strip()
password = usersdoc[1].strip()
创建空密码:
for line in lines:
usersdoc=line.strip().split('-')
username = usersdoc[0].strip()
password = usersdoc[1].strip() if usersdoc[1] else ""
我注意到您可能还没有发现,因为 strip()
出现在 split()
之前,如果 [=28= 之间有空格,您的用户名和密码两边仍然可以有空格] 和破折号。