Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python嵌套for循环不会在第一个循环的第二次迭代中执行第二个for循环_Python_Loops - Fatal编程技术网

Python嵌套for循环不会在第一个循环的第二次迭代中执行第二个for循环

Python嵌套for循环不会在第一个循环的第二次迭代中执行第二个for循环,python,loops,Python,Loops,在我的python类中,我创建了一个嵌套的for循环,脚本和输出应该非常直接。不直截了当的是我如何解决这个问题 我在谷歌上搜索了几个小时,查看了其他嵌套for循环的例子,但没有找到任何类似的例子来帮助我理解这个问题 以下是整个脚本: LIST = "list.txt" USERNAME = "users.txt" # Open the files to read from listtxt = open(LIST,"r") userstxt = open(USERNAME,"r") # Fo

在我的python类中,我创建了一个嵌套的for循环,脚本和输出应该非常直接。不直截了当的是我如何解决这个问题

我在谷歌上搜索了几个小时,查看了其他嵌套for循环的例子,但没有找到任何类似的例子来帮助我理解这个问题

以下是整个脚本:

LIST = "list.txt"
USERNAME = "users.txt"

# Open the files to read from

listtxt = open(LIST,"r")
userstxt = open(USERNAME,"r")

# For each user in users.txt
for USER in userstxt:
    print ("Started new user %s" % USER)

    for PASSWD in listtxt:
        print USER + ", " + PASSWD
输出

Started new user user1

user1
, pass1

user1
, pass2

user1
, pass3

user1
, pass4

user1
, pass5

Started new user user2

Started new user user3

Started new user user4

Started new user user5

你已经看到问题了吗?问题是它正确地迭代第一个用户,但在所有后续用户上,它只通过第一个(用户)循环,而不执行密码循环

您在外部循环的第一次迭代中耗尽了文件。您可能应该将
list.txt
文件读入一个列表,然后在该列表上循环。您可能还希望在使用换行符之前将其从换行符中剥离

users_filepath = 'users.txt'
passwords_filepath = 'list.txt'

with open(users_filepath, 'r') as users_file:
    users = [line.strip() for line in users_file]

with open(passwords_filepath, 'r') as password_file:
    passwords = [line.strip() for line in password_file]

for user in users:
    print "Started new user {user}".format(user=user)

    for password in passwords:
        print "{user}, {password}".format(user=user, password=password)

我按照给定的方式尝试了您的代码,它对我来说很好:

Started new user user1
user1, pass1
user1, pass2
user1, pass3
user1, pass4
user1, pass5
Started new user user2
user2, pass1
user2, pass2
user2, pass3
user2, pass4
user2, pass5
Started new user user3
...
看起来有什么东西弄脏了循环嵌套语法。 这让我怀疑你的压痕。您是否混合了制表符和空格?中间是否有非打印字符

我建议您突出显示每行的前导空格(第一个字符前的空格),并将其重新键入为所有空格


您也可以尝试蛮力方法:插入一两条策略性的print语句,在该点显示循环索引。这有助于跟踪循环的逻辑,尽管您已经拥有的打印效果非常好。

在外循环的第一次迭代中,您正在耗尽文件。您可能应该将
list.txt
文件读入一个列表,然后循环查看该列表。谢谢您,cyphase,您不知道我花了多少时间和时间尝试解决这个问题!!!谢谢你,伙计