2013-07-29 95 views
-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 

這就是我得到了我的輸出

[email protected] 
P 
[email protected] 
a 
[email protected] 
s 
[email protected] 
s 
[email protected] 
w 
[email protected] 
o 
[email protected] 
r 
[email protected] 
d 
[email protected] 
1 
[email protected] 


[email protected] 
P 
[email protected] 
a 
[email protected] 
s 
[email protected] 
s 
[email protected] 
w 
[email protected] 
o 
[email protected] 
r 
[email protected] 
d 
[email protected] 
1 
[email protected] 

我想什麼,看看它的打印是

[email protected] 
Password1 
[email protected] 
Password1 
etc ......... 
+0

我想你的意思是寫'password_list = password.readlines()'(不'readline') –

+1

這也是超級迷惑地擁有像'用戶在user:'和'pass_list在pa:'這樣的行,列表的名字看起來應該是列表中的項目名稱,反之亦然 – StephenTG

回答

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 
0

你試過:

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

如果不是您可以發佈兩個users.t的片段xt和password.txt?

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英寸

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

迭代Python中的字符串將生成字符串的字符一個接一個。你可以這樣做:

password_list = password.readlines() 

這將返回一個行列表,您可以輕鬆地使用for循環進行迭代。

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