下载url csv文件列表python IOError:[Errno 22]

时间:2017-11-14 14:53:02

标签: python csv url

我在下面有以下代码。 Credit to this answer.我在下载任何csv文件之前一直收到错误消息。 USW00000100.csv是第一个csv文件名。我不知道为什么我会收到错误。我的文件名中似乎没有任何不受支持的字符。

import os
import urllib

DOWNLOADS_DIR = "C:/py-testing/downloads"

# For every line in the file
for url in open("C:/py-testing/urls.txt"):
    # Split on the rightmost / and take everything on the right side of that
    name = url.rsplit('/', 1)[-1]

    # Combine the name and the downloads directory to get the local filename
    filename = os.path.join(DOWNLOADS_DIR, name)
    urllib.urlretrieve(url, filename)

错误:

IOError:[Errno 22]无效模式('wb')或文件名:'C:/ py-testing / downloads \ USW00000100.csv \ n'

1 个答案:

答案 0 :(得分:1)

问题可能是文件名末尾的换行符。当您从CSV中读取该行时,它包括换行符。有几种方法可以解决这个问题。

你可以简单地从最后删除换行符。

raw_name = url.rsplit('/', 1)[-1]
name = raw_name.strip()
# your code here

另一种方式,具有更简洁的功能风格(感谢@fenceop)

for url in map(str.strip, file): 
    # your code here