有循环功能的问题

时间:2013-07-29 17:54:41

标签: python

我在浏览文本文件中的列表时遇到问题。我错过了一些东西,但我无法弄清楚它是什么。这是我的剧本

user = open ('users.txt' , 'r')
password = open ('password.txt' , 'r')
# username = user.readline() 
password_list = password.readline()
pa = ''.join(password_list)


for users in  user:
    for pass_list in pa:
        login_data = users + pass_list
        print login_data

这是我的输出

User2@mymail.com
P
User2@mymail.com
a
User2@mymail.com
s
User2@mymail.com
s
User2@mymail.com
w
User2@mymail.com
o
User2@mymail.com
r
User2@mymail.com
d
User2@mymail.com
1
User2@mymail.com


User3@mymail.com
P
User3@mymail.com
a
User3@mymail.com
s
User3@mymail.com
s
User3@mymail.com
w
User3@mymail.com
o
User3@mymail.com
r
User3@mymail.com
d
User3@mymail.com
1
User3@mymail.com

我希望看到它打印的是

User4@mymail.com
Password1
user5@mymail.com
Password1
etc .........

6 个答案:

答案 0 :(得分:3)

password是一个类似文件的对象。 password_list从该文件中获取第一行。 pa将该行与''连接起来 - 因为该行是一个字符串,这将逐个获取所有字符,然后将它们连接在一起,而不将它们分开,从而准确地为您提供所需的内容。然后你遍历那个字符串 - 但迭代一个字符串会产生该字符串中的每个字符,这正是你得到的。

尝试:

with open('users.txt', 'r') as users, open('password.txt', 'r') as passwords:
    user_data = zip(users, passwords)
    for user, password in user_data:
        print(user, password)

答案 1 :(得分:2)

看起来您想要同时打印出两个列表的内容。您可以使用zip()

user = open ('users.txt' , 'r')
password = open ('password.txt' , 'r')
# username = user.readline() 
password_list = password.readline()

for users, pa in zip(user, password_list):
    login_data = users + pass_list
    print login_data

你的代码发生的是这个循环:

for pass_list in pa:

将迭代字符串pa中的字符。

答案 2 :(得分:1)

迭代Python中的字符串将逐个生成字符串的字符。你可以这么做:

password_list = password.readlines()

这将返回一个行列表,您可以使用for循环轻松迭代这些行。

答案 3 :(得分:0)

你试过了吗?

for users in  user:
    login_data = users + pa
    print login_data

如果没有,你可以发布一个users.txt和password.txt的片段吗?

答案 4 :(得分:0)

user = open ('users.txt' , 'r')
password = open ('password.txt' , 'r')
username = user.readlines() 
password_list = password.readlines()

for username in  user:
    for pass_val in password_list:
        login_data = username+'\n'+ pass_val
        print login_data

答案 5 :(得分:0)

这是我的嵌套循环的解决方案做我想要的

user = open ('users.txt' , 'r')
password = open ('password.txt' , 'r')


for users in user:
    for pass_list in password:
        login_data = users + '\n' + pass_list
        print login_data