인프런 커뮤니티 질문&답변

오소리릴님의 프로필 이미지
오소리릴

작성한 질문수

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

필드위치로 커서 옮기기

MovetoField, InsertPicture 예제에서 반복문 질문

해결된 질문

작성

·

328

1

이것저것 다양하게 자동화코드 짜보시다가막히면 언제든 무엇이든 질문 던져주세요.업무자동화 코딩은 과학이나 알고리즘과는 조금 달라서고민만으로 풀리지 않는 경우가 대부분입니다.저도 최대한 빠르게 회신 드리겠습니다. 이거를 for i in range(1,5):이용해서 반복문으로 하고 싶은데 {{{{{i}}}}} 넣어서는 안되더라구요.. 방법이 있을까요?

답변 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스트링이 중괄호 세 겹을 잡아먹으니까요.)

 시연화면은 아래와 같습니다. (움짤코드는 무시하시고 화면만..)

image

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

오소리릴님의 프로필 이미지
오소리릴
질문자

답변 감사합니다 ~! 제가 위에 코드를 똑같이 따라서 해봤는데요.

 

pic_path = "C:\Users\computer\Desktop\사진\" 에서

unterminated string literal(detected at line 9) 경고창이 뜹니다.

 

안되길래 역슬래시 2번 쓰면 사진이 전혀 들어가지 않습니다.ㄷ

오소리릴님의 프로필 이미지
오소리릴

작성한 질문수

질문하기