我有一个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版本中可用