我在下面有以下代码。 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'
答案 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