【问题标题】:Formatting a filename in python [duplicate]在python中格式化文件名[重复]
【发布时间】:2020-08-29 18:18:14
【问题描述】:

我想根据输入格式化字符串。例如如果行数为1,则输出必须为image00001.png,如果行数为400,则输出为image00400.png

我使用以下方法这样做

filename = "image%05d.png".format(line_count)

但它没有按预期工作。我错过了什么?

【问题讨论】:

    标签: python string format


    【解决方案1】:

    您正在混合不同的格式规范。对于.format,请使用Format string syntax

    line_count = 1
    filename = "image{:05d}.png".format(line_count)
    

    或新的 f-string 方法

    line_count = 1
    filename = f"image{line_count:05d}.png"
    

    【讨论】:

      【解决方案2】:

      您混淆了替换运算符%.format() 方法的符号。正确使用方法是filename = "image{:05d}.png".format(line_count)。更好的方法是使用格式字符串:filename = f"image{line_count:05d}.png"

      【讨论】:

        【解决方案3】:

        在 Python 3 中,您可以使用 f 字符串:

        filename = f'image{line_count:05}.png'

        【讨论】:

          【解决方案4】:
          fname = "image" + str(400).zfill(5) + ".png"
          print(fname)
          

          【讨论】:

          • zfill 的数字表示有多少个字符宽,未使用的 MSB 字符用零填充
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-19
          • 1970-01-01
          • 2011-01-19
          • 1970-01-01
          • 1970-01-01
          • 2015-12-07
          • 2017-04-10
          相关资源
          最近更新 更多