다른 명령
새 문서: * a.py에 있는 변수 aa 를 b.txt 파일을 읽어서 aa 변수를 처리 하는방법 1. a.py <source lang=python> aa = "This" with open("b.txt", "r") as f: content = f.read() print(content) </source> 2. b.txt <source lang=python> {aa} is a.py 실행 결과 {aa} is a.py </source> → 문자열 그대로 출력될 뿐 aa가 치환되지 않습니다. * 치환하려면 .format() 또는 f-string 사용 필요 === 방법 1: str.format() 사용 === <source lang=pyth... |
편집 요약 없음 |
||
| (같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
| 2번째 줄: | 2번째 줄: | ||
* a.py에 있는 변수 aa 를 b.txt 파일을 읽어서 aa 변수를 처리 하는방법 | * a.py에 있는 변수 aa 를 b.txt 파일을 읽어서 aa 변수를 처리 하는방법 | ||
=== 변수처리 안되는 예제 === | |||
1. a.py | 1. a.py | ||
<source lang=python> | <source lang=python> | ||
| 15번째 줄: | 15번째 줄: | ||
<source lang=python> | <source lang=python> | ||
{aa} is a.py | {aa} is a.py | ||
</source> | |||
실행 결과 | * 실행 결과 | ||
<source lang=python> | |||
{aa} is a.py | {aa} is a.py | ||
</source> | </source> | ||
→ 문자열 그대로 출력될 뿐 aa가 치환되지 않습니다. | → 문자열 그대로 출력될 뿐 aa가 치환되지 않습니다. | ||
---- | |||
=== 변수처리 방법=== | |||
* 치환하려면 .format() 또는 f-string 사용 필요 | * 치환하려면 .format() 또는 f-string 사용 필요 | ||
| 48번째 줄: | 51번째 줄: | ||
=== 요약 정리 == | === 요약 정리 === | ||
{| class="wikitable" | {| class="wikitable" | ||
| 64번째 줄: | 67번째 줄: | ||
=== jinja2 템플릿 방식 === | === jinja2 템플릿 방식 === | ||
<source lang=python> | |||
from jinja2 import Template | from jinja2 import Template | ||
| 82번째 줄: | 86번째 줄: | ||
print(result) | print(result) | ||
</source> | |||
[[category:python]] | |||
[[category:python jinja2]] | |||
[[category:python 변수]] | |||
2025년 5월 21일 (수) 08:23 기준 최신판
- a.py에 있는 변수 aa 를 b.txt 파일을 읽어서 aa 변수를 처리 하는방법
변수처리 안되는 예제
1. a.py
aa = "This"
with open("b.txt", "r") as f:
content = f.read()
print(content)
2. b.txt
{aa} is a.py
- 실행 결과
{aa} is a.py
→ 문자열 그대로 출력될 뿐 aa가 치환되지 않습니다.
변수처리 방법
- 치환하려면 .format() 또는 f-string 사용 필요
방법 1: str.format() 사용
aa = "This"
with open("b.txt", "r") as f:
content = f.read()
print(content.format(aa=aa))
→ 결과:
This is a.py
방법 2: f-string처럼 사용하고 싶다면 eval(f"") (주의 요망)
aa = "This"
with open("b.txt", "r") as f:
template = f.read()
print(eval(f"f'{template}'")) # 보안상 외부 입력일 경우 비추
요약 정리
| 방법 | 변수 적용됨? | 설명 |
|---|---|---|
f.read()만 사용 |
X | 문자열 그대로 읽음 |
.format() 사용 |
O | 안전하고 권장 |
eval(f"f") |
O | f-string처럼 사용 가능하나 보안 주의 |
jinja2 템플릿 방식
from jinja2 import Template
# 변수들
context = {
"name": "Bob",
"age": 25,
"place": "PythonLand"
}
# 템플릿 읽기
with open("template.txt", "r") as f:
template_str = f.read()
# Jinja2 템플릿으로 처리
template = Template(template_str)
result = template.render(context)
print(result)