我想将文件中的行拆分为2个单独的(二维)数组。
例如用户名:密码数组(users[user][pass]
)
这是我到目前为止提出的代码:
with open('userlist.txt', 'r') as userlist:
for line in userlist:
user, pwd = line.strip().split(':')
users = [
[user, pwd]
]
请帮助。该代码当前仅列出所有用户名和所有密码。但是我希望能够通过相同的索引(例如print(users[1][1])
)来调用带有密码对的用户名
答案 0 :(得分:1)
以下内容就足够了。请注意,您必须在循环之前 初始化外部数据结构并将其填充到循环中:
with open('userlist.txt', 'r') as userlist:
users = []
for line in userlist:
users.append(line.strip().split(':'))
可以缩写为:
with open('userlist.txt', 'r') as userlist:
users = [line.strip().split(':') for line in userlist]
答案 1 :(得分:1)
我建议您这样做
file=open('userlist.txt', 'r')
line=file.readlines()
users=[l.strip.split(':') for l in line]
这是用一行“ uname”:“ pass”,用“:”将其分割,这会给您["uname","pass"]
,并将其保存在用户数组的每个索引中
您现在可以通过[users[i][0]]
访问用户名,并通过users[i][1]
访问密码
答案 2 :(得分:0)
正如您在问题中所描述的,您希望在每次循环用户列表时向所有用户的现有列表中添加新列表[用户,密码]。
您可以这样做:
users = []
with open('userlist.txt', 'r') as userlist:
for line in userlist:
user, pwd = line.strip().split(':')
users.append([user, pwd])
但是对于这种情况,使用字典有更好的解决方案:
users = {}
with open('userlist.txt', 'r') as userlist:
for line in userlist:
user, pwd = line.strip().split(':')
users[user] = pwd