外部for循环在Python中仅执行一次
下面的代码只打印外部循环的第一个用户和内部循环的所有密码。一旦内部循环执行,程序也从外部循环退出外部for循环在Python中仅执行一次,python,Python,下面的代码只打印外部循环的第一个用户和内部循环的所有密码。一旦内部循环执行,程序也从外部循环退出 passfile = open("passfile.txt", "r") userfile = open("userfile.txt", "r") for user in userfile: for password in passfile: print("user: " + user + " password: " + password) 无论这是什么,每次迭代都会
passfile = open("passfile.txt", "r")
userfile = open("userfile.txt", "r")
for user in userfile:
for password in passfile:
print("user: " + user + " password: " + password)
无论这是什么,每次迭代都会执行内部循环。在这种情况下,它将从头到尾读取文件。一旦到达文件末尾,无论外循环迭代多少次,都无法读取更多的内容
如果您可以假设它包含用户密码对,您可以按照建议尝试zip。我认为这是您真正想要的行为,请参阅Jónás Balázs的答案以了解问题的原因: 编辑:
with open("passfile.txt", "r") as passfile:
passwords = passfile.readlines()
with open("userfile.txt", "r") as userfile:
usernames = userfile.readlines()
for user in usernames:
for password in passwords:
print("user:", user, "password:", password)
尝试同时运行两个循环:
userfile = open("userfile.txt", "r")
passfile = open("passfile.txt", "r")
for user, password in zip(userfile, passfile):
print("user: " + user + " password: " + password)
你遇到的问题正如@Jónás Balázs所描述的那样。如果使用Python2,请使用izip;如果使用Python3,请使用zip,这样您就可以在一个循环中同时迭代两个文件
try:
from itertools import izip # For Python 2
except ImportError:
izip = zip # For Python 3
for user, password in izip(open("userfile.txt"), open("passfile.txt")):
print("User: " + user + "Password: " + password)
这是假设两个文件具有相同的行数,并且用户和密码之间具有1对1的关系。userfile=openuserfile.txt,r passfile=openpassfile.txt,r我发现输入错误。也许这就是解决办法。不,那是我发帖时的打字错误。很抱歉。那么我该怎么做才能得到一个有效的代码呢?但是这个代码只是提供了一对一的关系。。我希望像这样的输出,例如:user1:password1-user1:password2-user1:password3-user2:password1等等