Py学习  »  Python

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

Colin • 2 年前 • 454 次点击  

我有这样一个f字串:

f"foo-{i:03d}"

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

pad = len(str(n))

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131308
 
454 次点击  
文章 [ 2 ]  |  最新文章 2 年前
mara004
Reply   •   1 楼
mara004    2 年前

而不是使用f字串, str.zfill() 最好是:

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

优势:

  • 更简洁的语法
  • 在较旧的Python版本中可用
wim
Reply   •   2 楼
wim    2 年前

嵌套f字符串:

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