Решение 1:
Это решение специально c для вашего случая использования:
Установите PyGithub пакет, используя ниже pip
команда:
!pip install PyGithub
Сгенерируйте токен Github API из этой страницы , нажав Generate new token
и передайте этот токен в виде строки в приведенном ниже коде вместо token
для Установить sh соединение с Github:
from github.MainClass import Github
g = Github(token)
Теперь вы подключены к Github, используя свои учетные данные, и вы можете получить доступ ко всему содержимому репозитория, а также к другим публикациям c репо.
Загрузить репозиторий, в котором хранятся ваши CSV
файлы:
repo = g.get_repo("CSSEGISandData/COVID-19")
Получить список объектов файлов, хранящихся в каталоге, где хранятся ваши CSV
файлы:
file_list = repo.get_contents("csse_covid_19_data/csse_covid_19_daily_reports")
Поскольку каталог, в котором хранятся эти файлы CSV, также содержит один файл .gitignore
и один файл README.md
и номенклатура файлов имеют формат "mm-dd-yyyy", поэтому файл README.md присутствует на последнем и последний-второй файл - это ваш последний обновленный файл. Чтобы получить доступ к этому, запустите следующий код:
github_dir_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/'
file_path = github_dir_path + str(file_list[-2]).split('/')[-1].split(".")[0]+ '.csv'
Загрузите данные из указанного пути, используя метод read_csv()
из pandas.
import pandas as pd
df = pd.read_csv(file_path, error_bad_lines=False)
Решение 2:
Попробуйте этот код, если вы хотите указать путь вручную:
Получите путь к вашему CSV-файлу из Github, щелкнув правой кнопкой мыши на raw
, как показано ниже, и назначьте его значение для file_path
:
file_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/03-08-2020.csv'
Загрузить данные по указанному пути, используя метод read_csv()
из pandas:
import pandas as pd
df = pd.read_csv(file_path, error_bad_lines=False)
Решение 3:
Попробуйте этот код, если вы хотите указать путь автоматически:
Установите время, когда вы хотите обновить sh ваш код и интегрируйте с ним приведенное ниже решение.
Поскольку вы знаете каталог, в котором хранятся последние файлы, и как часто новые файлы добавляются в этот каталог, вы можете просто изменить дату динамически для текущей даты в формате мм-дд-гггг:
from datetime import date
file_date = str(date.today().strftime('%m-%d-%Y'))
file_date
Вывод: 03-11-2020
Аналогично, просто измените значение file_date, если вы хотите запустить свой код для вчерашней даты:
from datetime import date, timedelta
file_date = str((date.today() - timedelta(days = 1)).strftime('%m-%d-%Y'))
file_date
Вывод: 03-10-2020
Поскольку в данный момент в этом каталоге находится последний файл загружено 9 марта 2020 года, поэтому мы собираемся использовать эту дату:
from datetime import date, timedelta
file_date = str((date.today() - timedelta(days = 2)).strftime('%m-%d-%Y'))
file_date
Выходные данные: 03-09-2020
Динамически генерировать file_path:
github_dir_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/'
file_path = github_dir_path + file_date + '.csv'
Загрузить данные по указанному пути, используя метод read_csv()
из pandas.
import pandas as pd
df = pd.read_csv(file_path, error_bad_lines=False)