2017-04-15 158 views
1

如果我在Python中有這樣的字符串,我該如何填充佔位符?如何在python字符串中替換佔位符

s = """ 
uri1: %s/file1.txt 
md5: %s 
uri2: %s/file2.txt 
md5: %s 
uri3: %s/file3.txt 
md5: %s 
""" 

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 

我知道我可以填寫每%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) 

在上面,我每次都指定self.URI ...我不知道是否有一種方法能夠只指定了一次?

回答

1

退房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) 

這裏是一個頁面,以幫助。 https://pyformat.info

0

爲什麼不使用.format

s = """ 
uri1: {uri}/file1.txt 
md5: {uri} 
uri2: {uri}/file2.txt 
md5: {uri} 
uri3: {uri}/file3.txt 
md5: {uri} 
""".format(uri=self.URI) 
0

可以不止一次使用值,例如:

"{0} {0} {1}".format("a", "b") 
'a a b'