外部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等等