如何在 python f 字符串中动态填充数字?
How can I dynamically pad a number in python f-strings?
我有这样的 f-string:
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-string,str.zfill()
可能更可取:
"foo-" + str(i).zfill( len(str(n)) )
优点:
- 更简洁的语法
- 旧 Python 版本可用
我有这样的 f-string:
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-string,str.zfill()
可能更可取:
"foo-" + str(i).zfill( len(str(n)) )
优点:
- 更简洁的语法
- 旧 Python 版本可用