我已经审查了这方面的其他帖子,但没有解决我的问题。 我有一个脚本,每天从服务器下载一堆文件。我已经将每个文件的名称设置为url的最后一部分。这是我的代码:
# Grab each file.
DATE = datetime.date.today().isoformat()
for url in urls:
r = s.get(config['base_url'] + url)
if r.status_code == 200:
parsed_url = urlparse(r.url)
filename = os.path.basename(parsed_url.path,DATE)
directory = '/data/data/data.zonefiles/CZDS'
if not os.path.exists(directory):
os.makedirs(directory)
path = directory + '/' + filename + '.txt.gz'
with open(path, 'wb') as f:
for chunk in r.iter_content(1024):
f.write(chunk)
else:
sys.stderr.write("Unexpected HTTP response for URL " + url + "\n")
现在我要做的是,对于每个文件(将每天下载),我想要自动创建一个文件夹(与文件名相同,没有日期)并写入输出那里。所以基本上为每组文件创建一个单独的文件夹。
目前我收到此错误:
Traceback (most recent call last):
File "download.py", line 56, in <module>
filename = os.path.basename(parsed_url.path,DATE)
TypeError: basename() takes exactly 1 argument (2 given)
有人可以帮我吗?
答案 0 :(得分:1)
创建文件名似乎是错误的:
filename = os.path.basename(parsed_url.path,DATE)
parsed_url.path
和DATE
是两个单独的参数。尝试类似的事情;
p = parsed_url.path + "_" + DATE
filename = os.path.basename(p)
要创建子目录,它几乎以相同的方式工作;
directory = '/data/data/data.zonefiles/CZDS' + "/" + DATE