2017-04-15 1 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が変更されます、同じままになります。私はすべての%sしかし、私は毎回同じ変数を複製したくない場合は記入することができます知っている

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 = """ 
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たびに指定する必要がありますか?

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

答えて

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) 

が支援するページです

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) 
関連する問題