如何在python f字符串中动态填充数字



我有一个f字符串,如下所示:

f"foo-{i:03d}"

这是为我读入的文件生成一个文件名。问题是有时有数百个文件,所以这些文件的名称像foo-001、foo-002等,但其他时候有数千个,所以需要文件foo-0001和04d。有没有一种方法可以动态地做到这一点?例如,如果我有一个变量n的文件总数,那么我可以做:

pad = len(str(n))

但是我该如何在f字符串中使用pad变量呢?

嵌套的f-string:

>>> pad = 4
>>> i = 1
>>> f"foo-{i:>0{pad}}"
'foo-0001'

与其使用f字符串,不如使用str.zfill()

"foo-" + str(i).zfill( len(str(n)) )

优点:

  • 更干净的语法
  • 在较旧的Python版本中可用

最新更新