由于额外的回车,Python无法读取我的csv

时间:2014-09-24 00:55:48

标签: python http-status-code-404

很抱歉,如果这是多余的,但我已经非常努力地寻找答案,但我一直找不到答案。我对此非常陌生,请耐心等待:

我的目标是通过一个充满网址的csv读取一段代码,并返回一个http状态代码。我有Python 2.7.5。每行的结果会给我一个url和状态代码,如下所示:www.stackoverflow.com:200。

我的csv是一个包含数百个网址的单列csv,每行一个。我正在使用的代码如下,当我运行此代码时,它给我一个/ r分隔两个类似于此的URL:

{http://www.stackoverflow.com/test \ rhttp://www.stackoverflow.com/questions/':404}

我希望看到两个网址分开,每个网址都有自己的http状态代码:

{' http://www.stackoverflow.com':200,' http://www.stackoverflow.com/questions/':404}

但是当Python读取csv时似乎有一个额外的\ r \ n,所以它没有正确读取网址。我知道人们已经说过strip()并不是一个全包式的雨刮器 - 所以任何关于如何做到这一点的建议都会非常感激。

import requests
def get_url_status(url):
    try:
       r = requests.head(url)
       return url, r.status_code
    except requests.ConnectionError:
       print "failed to connect"
       return url, 'error'


results = {}
with open('url2.csv', 'rb') as infile:
   for url in infile:
       url = url.strip() # "http://datafox.co"
       url_status = get_url_status(url)
       results[url_status[0]] = url_status[1]
   print results

1 个答案:

答案 0 :(得分:0)

在将csv文件提供给Python之前,您可能需要弄清楚csv文件的格式。

首先,确保它具有一致的行结尾。如果它有时会有换行符,并且有其他人,那可能是一个需要纠正的问题。

如果您使用的是* ix系统,tr可能会有用。