【问题标题】:get latest path based on name-date from a list python从列表python中获取基于名称日期的最新路径
【发布时间】:2022-01-05 05:00:03
【问题描述】:

我想从这个列表中提取最近一天的路径,以便在 python 脚本中读取它。

 from github.MainClass import Github
 g = Github("****")
 repo = g.get_repo("CSSEGISandData/COVID-19")
 file_list = repo.get_contents("csse_covid_19_data/csse_covid_19_daily_reports")
 github_dir_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/'

file_list 的输出:

[内容文件(路径=“csse_covid_19_data/csse_covid_19_daily_reports/.gitignore”), 内容文件(路径=“csse_covid_19_data/csse_covid_19_daily_reports/01-01-2021.csv”), 内容文件(路径=“csse_covid_19_data/csse_covid_19_daily_reports/01-02-2021.csv”), 内容文件(路径=“csse_covid_19_data/csse_covid_19_daily_reports/01-03-2021.csv”), ContentFile(path="csse_covid_19_data/csse_covid_19_daily_reports/01-04-2021.csv"),....

我需要的是例如:“csse_covid_19_data/csse_covid_19_daily_reports/11-27-2021.csv”。

【问题讨论】:

  • 张贴清单并说明需要的项目。

标签: python github


【解决方案1】:

你需要做三件事:

  1. 过滤掉所有不以“.csv”结尾的文件。
  2. 将文件名的相关部分解析为日期。
  3. 按解析日期对数据文件列表进行排序。
from github.MainClass import Github
from datetime import datetime


# 2. parsing the name attribute of a ContentFile object as a datetime object
def to_date(s):
    return datetime.strptime(s.name[:10], "%m-%d-%Y")


if __name__ == '__main__':
    g = Github()
    repo = g.get_repo("CSSEGISandData/COVID-19")
    data_files = repo.get_contents("csse_covid_19_data/csse_covid_19_daily_reports")

    # 1. filter to use only data files
    data_files = [f for f in data_files if f.name.endswith('.csv')]

    # 3. sort according to parsed date
    data_files = sorted(data_files, key=to_date)

    github_dir_path = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/'

    for data_file in data_files:
        print(data_file)

    current_data = data_files[-1]
    print("\n" + " Current Data: ".center(80, "#"))
    print(f"path: {current_data.path}")

输出读数:

...

ContentFile(path="csse_covid_19_data/csse_covid_19_daily_reports/11-26-2021.csv")
ContentFile(path="csse_covid_19_data/csse_covid_19_daily_reports/11-27-2021.csv")

################################ Current Data: #################################
path: csse_covid_19_data/csse_covid_19_daily_reports/11-27-2021.csv

【讨论】:

  • 非常感谢!!
  • @Pro23 欢迎您。祝您研究顺利。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 2020-03-14
  • 2017-07-06
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多