2017-04-15 3 views
1

파이썬에서 이와 같은 문자열이 있으면 어떻게 placeholder를 채울 수 있습니까? 파이썬 문자열에서 자리 표시자를 바꾸는 방법

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 지정해야합니다 ... 궁금하네요?

답변

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' 
관련 문제