인프런 커뮤니티 질문&답변
MovetoField, InsertPicture 예제에서 반복문 질문
해결된 질문
작성
·
414
답변 2
1
일코
지식공유자
답변 감사합니다 ~! 제가 위에 코드를 똑같이 따라서 해봤는데요.
pic_path = "C:\Users\computer\Desktop\사진\" 에서
unterminated string literal(detected at line 9) 경고창이 뜹니다.
안되길래 역슬래시 2번 쓰면 사진이 전혀 들어가지 않습니다.ㄷ역슬래시(\) 말고 슬래시(/)로 바꿔서 해보시면 될 거예요. -> "c:/Users/computer/Desktop/사진/"
말씀하신 오류메시지는, 마지막 \과 " 두 글자가 하나로 합쳐져버려서 그렇거든요?
역슬래시로 처리하시려면
① 시작하는 따옴표 앞에 r을 붙이시거나 -> r"C:\Users\computer\Desktop\사진\"
② 모든 역슬래시를 두겹으로 하시면 돼요. -> "C:\\Users\\computer\\Desktop\\사진\\"
파이썬에서 문자열이나 경로 다루기가,
생각보다 익숙해지는 데 시간이 좀 걸립니다.
잘 해결되었으면 좋겠습니다. 힘내시기 바랍니다^^
0
일코
지식공유자
음, 아래와 같이 실행해보시기 바랍니다^^
pic_path = "c:/users/computer/desktop/사진/"
pic_list = ["바다, 나무, 들판"]
for i in range(1, 5):
for p in pic_list:
if hwp.MoveToField(f"{p}사진{i}"):
hwp.InsertPicture(pic_path + f"{p}사진{i}.jpg")
제 강의 중에 f"필드명{{{{{i}}}}}"을 썼던 이유는,
동일한 이름의 필드가 존재하는 경우에,
n번째 필드에 값을 넣거나 이동할 때 필요하기 때문입니다.
예를 들어 "바다사진"이라는 동일명의 필드가 4개 존재한다면
3번째 "바다사진" 필드로 이동하려면 중괄호 두 겹을 붙여서hwp.MoveToField("바다사진{{2}}")라고 입력해야 하거든요.
f스트링으로 이걸 표현하려면
i = 2
hwp.MoveToField(f"바다사진{{{{{i}}}}}")라고 써줘야 하고요. (f스트링이 중괄호 세 겹을 잡아먹으니까요.)
시연화면은 아래와 같습니다. (움짤코드는 무시하시고 화면만..)

도움이 되었으면 좋겠습니다^^
행복한 하루 되세요!!






이거를 for i in range(1,5):이용해서 반복문으로 하고 싶은데 {{{{{i}}}}} 넣어서는 안되더라구요.. 방법이 있을까요?
답변 감사합니다 ~! 제가 위에 코드를 똑같이 따라서 해봤는데요.
pic_path = "C:\Users\computer\Desktop\사진\" 에서
unterminated string literal(detected at line 9) 경고창이 뜹니다.
안되길래 역슬래시 2번 쓰면 사진이 전혀 들어가지 않습니다.ㄷ