如何替换python字符串中的占位符

Ant*_*ony 5 python string

如果我在 Python 中有这样的字符串,我该如何填充占位符?

s = """
uri1: %s/file1.txt
md5: %s
uri2: %s/file2.txt
md5: %s
uri3: %s/file3.txt
md5: %s
"""
Run Code Online (Sandbox Code Playgroud)

uri将保持不变,但md5会改变。因此,对于上述情况,最终输出将是这样的:

uri1: file:///somepath/foo/file1.txt
md5: 1234
uri2: file:///somepath/foo/file2.txt
md5: 4321
uri3: file:///somepath/foo/file3.txt
md5: 9876
Run Code Online (Sandbox Code Playgroud)

我知道我可以填写每个%s但如果我不想每次都复制相同的变量怎么办?即我想避免这样做:

s = """
uri1: %s/file1.txt
md5: %s
uri2: %s/file2.txt
md5: %s
uri3: %s/file3.txt
md5: %s
""" % (self.URI, self.md5_for_1, self.URI, self.md5_for_2, self.URI, self.md5_for_3)
Run Code Online (Sandbox Code Playgroud)

在上面,我self.URI每次都必须指定......我想知道是否有一种方法可以只指定一次?

小智 6

退房str.format

string = """
uri1: {s.URI}/file1.txt
md5: {s.md5_for_1}
uri2: {s.URI}/file2.txt
md5: {s.md5_for_2}
uri3: {s.URI}/file3.txt
md5: {s.md5_for_3}
""".format(s=self)
Run Code Online (Sandbox Code Playgroud)

这是一个帮助页面。https://pyformat.info