根据日期时间列表创建文件夹结构
Create folder structure based on a datetime list
我有一个日期时间格式的日期列表。此列表的日期范围在 datetime(2018, 1, 1)
到 datetime(2020, 12, 31)
之间。
我使用以下代码遍历此列表:
for day in days:
# code snippet to get data from each day
我的疑问是:如何在我的循环中使用 os.mkdir()
来创建如下所示的文件夹结构
data
2018
Jan
2018-01-01.csv
2018-01-02.csv
...
Feb
2018-02-01.csv
2018-02-02.csv
...
...
...
2019
Jan
...
Feb
...
...
2020
Jan
...
Feb
...
...
您可以使用os.makedirs
创建多个文件夹,如果该文件夹已经存在,它也可以忽略。
for day in days:
path = day.strftime("%Y/%b")
os.makedirs(path, exist_ok=True)
# write your file to path/filename
或者例如:
for day in days:
path = day.strftime(os.path.join("%Y", "%b", "%Y-%m-%d.csv"))
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w") as file:
file.write("Your Data Here")
可以找到 strftime
的可能占位符 on this handy site。您可能会发现更改中间文件夹名称很有用,因为月份名称不能很好地按字母顺序排列,因此您可能希望将其更改为 %m %b
,以便前面的数字可以更好地排序。
我有一个日期时间格式的日期列表。此列表的日期范围在 datetime(2018, 1, 1)
到 datetime(2020, 12, 31)
之间。
我使用以下代码遍历此列表:
for day in days:
# code snippet to get data from each day
我的疑问是:如何在我的循环中使用 os.mkdir()
来创建如下所示的文件夹结构
data
2018
Jan
2018-01-01.csv
2018-01-02.csv
...
Feb
2018-02-01.csv
2018-02-02.csv
...
...
...
2019
Jan
...
Feb
...
...
2020
Jan
...
Feb
...
...
您可以使用os.makedirs
创建多个文件夹,如果该文件夹已经存在,它也可以忽略。
for day in days:
path = day.strftime("%Y/%b")
os.makedirs(path, exist_ok=True)
# write your file to path/filename
或者例如:
for day in days:
path = day.strftime(os.path.join("%Y", "%b", "%Y-%m-%d.csv"))
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w") as file:
file.write("Your Data Here")
可以找到 strftime
的可能占位符 on this handy site。您可能会发现更改中间文件夹名称很有用,因为月份名称不能很好地按字母顺序排列,因此您可能希望将其更改为 %m %b
,以便前面的数字可以更好地排序。