为整数月份和日期添加“0”的最简单方法是什么?
What's the simplest way to add '0' for month and day which are integers?
我有输入 month
和 day
都是 int
类型,我想将它们传递给一个函数来构造路径,如果 month
或者day
是10以下的数字,我们在数字前加一个0
:
def construct_path(year, month, day):
if month >= 10 or day >= 10:
path = f"xxx/{year}/{month}/{day}"
elif month < 10 and day >= 10:
path = f"xxx/{year}/0{month}/{day}"
elif month >=10 and day <10:
path = f"xxx/{year}/{month}/0{day}"
else:
path = f"xxx/{year}/0{month}/0{day}"
return path
所以construct_path(2021, 5, 2)
应该returnxxx/2021/05/02
.
代码有效,但看起来很复杂,有没有更好的方法来实现?
您可以转换为日期时间格式,然后转换为字符串格式:
from datetime import datetime
def construct_path(year, month, day):
dt = datetime(year=year, month=month, day=day)
dt_as_path = dt.strftime('xxx/%Y/%m/%d')
return dt_as_path
可以使用:02d
格式化,给一个数字分配两个space,如果space为空,则用0填充。
def construct_path(year, month, day):
return f'xxx/{year}/{month:02d}/{day:02d}'
我有输入 month
和 day
都是 int
类型,我想将它们传递给一个函数来构造路径,如果 month
或者day
是10以下的数字,我们在数字前加一个0
:
def construct_path(year, month, day):
if month >= 10 or day >= 10:
path = f"xxx/{year}/{month}/{day}"
elif month < 10 and day >= 10:
path = f"xxx/{year}/0{month}/{day}"
elif month >=10 and day <10:
path = f"xxx/{year}/{month}/0{day}"
else:
path = f"xxx/{year}/0{month}/0{day}"
return path
所以construct_path(2021, 5, 2)
应该returnxxx/2021/05/02
.
代码有效,但看起来很复杂,有没有更好的方法来实现?
您可以转换为日期时间格式,然后转换为字符串格式:
from datetime import datetime
def construct_path(year, month, day):
dt = datetime(year=year, month=month, day=day)
dt_as_path = dt.strftime('xxx/%Y/%m/%d')
return dt_as_path
可以使用:02d
格式化,给一个数字分配两个space,如果space为空,则用0填充。
def construct_path(year, month, day):
return f'xxx/{year}/{month:02d}/{day:02d}'