-2

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

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 .........
4

6 回答 6

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)
于 2013-07-29T18:00:18.333 回答
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

于 2013-07-29T17:59:45.957 回答
1

在 Python 中迭代一个字符串将一个一个地产生字符串的字符。你可以这样做:

password_list = password.readlines()

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

于 2013-07-29T18:03:02.837 回答
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
于 2013-07-29T18:07:47.870 回答
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
于 2013-07-29T19:44:06.110 回答
0

你有没有尝试过:

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

如果不能,您可以发布 users.txt 和 password.txt 的片段吗?

于 2013-07-29T17:59:25.307 回答