python - 如何从 URL 格式 YYYY-MM-DD.csv 转换成 csv
问题描述
我有一个我试图解决的问题。只是声明我不知道如何使用 python,我认为我的问题对其他人来说可能很容易。
我有一个网址链接:https ://xxxcompanyname.com/repo/YYYY-MM-DD.csv
里面有一些数据。所以,我试图找到一个解决方案,我可以在其中提取日期范围的数据。例如从 2020-09-01 到昨天。
没有特定的文件夹可以在其中找到例如 100 个 csv 文件,您可以选择所需的文件。我只能使用 url 链接,当我插入日期并按 Enter 按钮时,我会看到下载的 csv 文件。我找到了一种类似下面的脚本,但没有结果:
import requests
import shutil
from datetime import datetime, timedelta
# enter start/end dates here, convert to datetime object
start_date = datetime.strptime('2021-08-01', '%Y-%m-%d') # the latter arg defines the format of the given string
end_date = datetime.strptime('2021-03-12', '%Y-%m-%d')
# need to know how many days we need to loop over
day_count = (end_date - start_date).days + 1
# loop over days and download file
for i in range(day_count):
date_str = (start_date + timedelta(i)).strftime('%Y%m%d') # convert our datetime obj into the desired string format
r = requests.get(f'http://https//footfall.vodafoneinnovus.com/repo/YYYY-MM-DD.csv', stream=True)
if r.status_code == 200:
with open(f'{date_str}.csv', 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
你知道如何提取数据以及我找到的脚本是否足够接近?
解决方案
import datetime
import os
import requests
today = datetime.date.today()
day_count = 15
folder_name = 'downloads' #Name for new folder
try:
os.mkdir(f'{folder_name}')
except:
pass
for i in range(day_count):
datestr = today - datetime.timedelta(days=i)
url = f'http://https//footfall.vodafoneinnovus.com/repo/{datestr}.csv'
r = requests.get(url)
csv_file = open(f'{folder_name}/{datestr}.csv', 'wb')
csv_file.write(r.content)
csv_file.close()
这将创建一个新文件夹并以日期为名称插入所需的 csv 文件
推荐阅读
- python - 是否有任何简单的方法可以在列表中的列表中添加元素以使列表中的所有列表具有相同数量的元素?
- java - 如何在我的 android 片段中使用 echo php
- ionic4 - 如何更改离子 4 中左填充的默认全局值?
- sbt - 无法从 SBT 发布
- python - 根据鼠标按下事件更改图表条的颜色
- jquery - 如果它与当前网址匹配,则将类添加到当前链接?
- json - 如何在使用 Scala-Play Json 框架解析 Json 时获取键和值?
- qt - 在我的项目中单击运行时,我收到“无法启动程序。路径或权限错误?”
- oracle - webutil如何将word文件读入oracle表单数据块
- linux - 如何在单个 linux 服务器中安装多个 CouchBase 实例?