Unix Shell과 Python의 Heredoc

Heredoc이란?

프로그래밍 언어에 문자열을 포함시키기 위한 방법이다. 문자열을 포맷팅한 다음 출력하는 Sprintf 를 생각하면 된다.

예시

Unix 계열 Shell에서

cat 을 사용해 Heredoc을 사용할 수 있다. 다음 예제는 EOT 문자열까지의 텍스트를 index.html 에 입력한다. EOT 대신 임의의 문자열을 사용할 수 있지만, 관습적으로 End of file이란 뜻의 EOF 나  End of text란 뜻의 EOT 를 많이 사용한다.

cat <<EOT > index.html
<html>
    <body>
        <h1>Hello, Pulumi!</h1>
    </body>
</html>
EOT

결과물은

───────┼────────────────────────────────────────────────────────────────
   1   │ <html>
   2   │     <body>
   3   │         <h1>Hello, Pulumi!</h1>
   4   │     </body>
   5   │ </html>
───────┴─────────────────────────────────────────────────────────────────

Python에서

파이썬에서 문자열 포맷팅을 사용해 출력하는 방법은  3가지가 있다.

name = "john"
age = 10

print(f"I am {name}, {age} years old.")

text_literal = """I am {my_name}, {my_age} years old."""
print(text_literal.format(my_name=name, my_age=age))

print("""I am {}, {} years old.""".format(name, age))

print("I am %s, %d years old", name, age)

나는 첫 번째 방법이 제일 직관적인 것 같다.