如何循环运行函数,从文件中逐行提取参数

时间:2019-03-29 10:27:01

标签: python

我正在编写一个脚本,该脚本以url,用户名和密码作为参数,发出Web请求并记录结果。我想使用一个包含许多站点/凭证的csv文件,并为每个条目循环请求,如果有任何异常/错误,我想跳到文件中的下一个条目,但是我的脚本在第一次运行后挂起循环

目前,我只是通过命令行标志手动传递参数,但这是不可行的,因为手动操作会花费很多时间,当我尝试创建循环并从文件中提取参数时,我的函数运行了一次然后无限期地挂起,无论是否存在例外都将发生这种情况。

#currently Im using command line arguments to manually input the 
#arguments for the function below, which works fine but I want to pull 
#arguments from a list in a csv file (see comments at end for what ive #tried)


def webrequest(username,password):
 url = site
    headers = {'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
               'Accept-Encoding' : 'none'
    }
    payload = {'log': username,
               'pwd': password
               }
    session = requests.session
    r = session.post(url, headers=headers, data=payload)
    if r.status_code == 404
        print "404"
        #end function, move on to next line in csv
    if r.status_code == 200
        print r.text
        # move on to next line in csv



#file = open(file, r)
#with open(file) as f:
#    for line in f:
#       args = line.split(",")
#       webrequest(args[0],args[1],args[2])

我希望函数到达末尾时可以使用csv文件中的下一行重新开始,但是它没有..它只是挂在命令行上

1 个答案:

答案 0 :(得分:0)

尝试使用timeout参数的session.post()。此处的详细信息:http://docs.python-requests.org/en/master/user/advanced/#timeouts

您的Web服务器很可能没有返回响应,因此您感到您的功能卡住了。