Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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 2个列表、一个循环和一个登录_Python_List_Loops_Login - Fatal编程技术网

Python 2个列表、一个循环和一个登录

Python 2个列表、一个循环和一个登录,python,list,loops,login,Python,List,Loops,Login,我有两个列表,一个是用户ID,一个是密码。我有一个脚本,可以登录到一个网站,从中提取我需要的数据 #!/usr/bin/env python from mechanize import Browser from BeautifulSoup import BeautifulSoup import easygui br = Browser() hid = easygui.enterbox (msg="Enter Hotel ID", title="HID", default="", strip=T

我有两个列表,一个是用户ID,一个是密码。我有一个脚本,可以登录到一个网站,从中提取我需要的数据

#!/usr/bin/env python
from mechanize import Browser
from BeautifulSoup import BeautifulSoup
import easygui

br = Browser()
hid = easygui.enterbox (msg="Enter Hotel ID", title="HID", default="", strip=True)
pwd = easygui.enterbox (msg="Enter Password", title="HID", default="", strip=True)
url = "http://example.com"
page = br.open(url)
#Select form on front page, input values and submit
br.select_form(nr=0)
br["UN"] = hid
br["txtID"] = pwd
results = br.submit().read()

#Printing XML results to a file by appending
myfile = open('C:\\Python\\xml\\output.xml','a')
myfile.write(results)
myfile.close()

#Printing txt results to a file by appending
myfile = open('C:\\Python\\xml\\output.txt','a')
myfile.write(results)
myfile.close()
因此,当easygui提示我这样做时,我输入了登录/密码详细信息。如果我将所有密码存储在两个列表中

userlist = ['254376xml', '254371xml', '245157xml', '244829xml', '242404xml', '238153xml', '235884xml', '28551xml']
pwordlist = ['mbhg934uh', 'hj2r93kh8s', 'mhg90wihf', 'ng0218hkd', 'nb029hkegh', 'bng0219hk', 'mg029k03g', 'mntg0ohwf']
我曾尝试使用整数循环为循环的每个迭代一次导入一个值,但没有成功。我已经寻找了一些关于如何做到这一点的帮助和教程,但似乎没有什么适合我的具体需要。谁能给我指出正确的方向,或者建议我可以使用什么代码来实现这个特性


谢谢。

我不确定我是否完全理解您的要求。是否要并行迭代两个列表,在每次迭代中提取相应的用户名/密码对

如果是,那么

userlist = ['254376xml', '254371xml', '245157xml', '244829xml', '242404xml', '238153xml', '235884xml', '28551xml']
pwordlist = ['mbhg934uh', 'hj2r93kh8s', 'mhg90wihf', 'ng0218hkd', 'nb029hkegh', 'bng0219hk', 'mg029k03g', 'mntg0ohwf']
for username, password in zip(userlist, pwordlist):
    print "Username:", username, " - Password:", password
print "Done!"
应该这样做


但是,如果您想知道是否有更好的数据结构,那么我推荐marcog的字典解决方案。

我不确定是否完全理解您的需求。是否要并行迭代两个列表,在每次迭代中提取相应的用户名/密码对

如果是,那么

userlist = ['254376xml', '254371xml', '245157xml', '244829xml', '242404xml', '238153xml', '235884xml', '28551xml']
pwordlist = ['mbhg934uh', 'hj2r93kh8s', 'mhg90wihf', 'ng0218hkd', 'nb029hkegh', 'bng0219hk', 'mg029k03g', 'mntg0ohwf']
for username, password in zip(userlist, pwordlist):
    print "Username:", username, " - Password:", password
print "Done!"
应该这样做


但是如果你问是否有更好的数据结构,那么我推荐marcog的字典解决方案。

如果你想检查用户输入的密码是否正确,最好将它们存储在下面这样的字典中。您需要填充字典的其余部分,我将

passwords = { '254376xml': 'mbhg934uh', '254371xml': 'hj2r93kh8s', ... }
def check_password(username, password):
  if username not in passwords:
    return False # username not found
  return password == passwords[username] # check the password is correct
那么就这样称呼它:

>>> check_password('254371xml', 'hj2r93kh8s') # correct password
True
>>> check_password('254371xml', 'wrong') # wrong password
False
>>> check_password('non-existant', 'wrong') # non-existant user
False

如果您想检查用户输入的密码是否正确,最好将其存储在下面的字典中。您需要填充字典的其余部分,我将

passwords = { '254376xml': 'mbhg934uh', '254371xml': 'hj2r93kh8s', ... }
def check_password(username, password):
  if username not in passwords:
    return False # username not found
  return password == passwords[username] # check the password is correct
那么就这样称呼它:

>>> check_password('254371xml', 'hj2r93kh8s') # correct password
True
>>> check_password('254371xml', 'wrong') # wrong password
False
>>> check_password('non-existant', 'wrong') # non-existant user
False

我想你应该试着相信这一点(代码取自其他答案)


我想你应该试着相信这一点(代码取自其他答案)


感谢您的帮助,我正在尝试循环程序,以便每次它都从每个列表中选择下一项。使用这些项目登录并从网站中获取数据,然后使用接下来的两位信息再次循环。感谢您的帮助,我正在尝试循环程序,以便每次它都从每个列表中提取下一个项目。使用这些项目登录并从网站中获取数据,然后使用接下来的两位信息再次循环。这就是我想要的,使用您的示例,我可以让它获取第一个用户/pword。但它只输出第一对,而不是所有对。我敢肯定,我只是错过了一条线来再次运行循环;它应该在它们之间循环。我会用一个完整的例子来编辑我的文章。这就是我想要的,用你的例子,我可以让它找到第一个用户/pword。但它只输出第一对,而不是所有对。我敢肯定,我只是错过了一条线来再次运行循环;它应该在它们之间循环。我将用完整的样本编辑我的帖子。