为整数月份和日期添加“0”的最简单方法是什么?

What's the simplest way to add '0' for month and day which are integers?

我有输入 monthday 都是 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}'