해결된 질문
작성
·
336
·
수정됨
1
#그림 삽입
for i in range(9):
파일명1 = hwp.GetFieldText("대상{{i}}") + " (1)"
파일명2 = hwp.GetFieldText("대상{{i}}") + " (2)"
폴더 = r"C:\Users\USER\Desktop\한글자동화\사진\\"
for filename in os.listdir(폴더):
파일명 = filename.split('.')[0]
if 파일명 == 파일명1:
hwp.MoveToField("그림1{{i}}")
hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)
elif 파일명 == 파일명2:
hwp.MoveToField("그림2{{i}}")
hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)
그림 삽입하는 코드를 만들려고 하는데요.
폴더에서 '필드텍스트 (1)', '필드텍스트 (2)' 이름을 가진 그림 파일을 각각 그림1, 그림2 필드에 삽입하려는 건데요.
for 문에서 i가 '0'일 때 한 번만 작동하고 아래처럼 오류가 납니다.
9 if 파일명 == 파일명1:
10 hwp.MoveToField("그림1{{i}}")
---> 11 hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)
12 elif 파일명 == 파일명2:
13 hwp.MoveToField("그림2{{i}}")
com_error: (-2147417851, '서버에서 예외 오류가 발생했습니다.', None, None)
이렇게 저렇게 수정해봤는데도 안 돼서 문의글을 올려봅니다.
혹시 되는 방법이 있을까요?
답변 2
1
음, 우선 아래처럼 수정해보시기 바랍니다^^
(중괄호 부분을 수정하였습니다.)
#그림 삽입
for i in range(9):
파일명1 = hwp.GetFieldText(f"대상{{{{{i}}}}}") + " (1)"
파일명2 = hwp.GetFieldText(f"대상{{{{{i}}}}}") + " (2)"
폴더 = r"C:\Users\USER\Desktop\한글자동화\사진\\"
for filename in os.listdir(폴더):
파일명 = filename.split('.')[0]
if 파일명 == 파일명1:
hwp.MoveToField(f"그림1{{{{{i}}}}}")
hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)
elif 파일명 == 파일명2:
hwp.MoveToField(f"그림2{{{{{i}}}}}")
hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)
만약 여전히 작동이 안되면 다시 추가질문 남겨주세요ㅎㅎ
감사합니다~ 행복한 하루 되세요^^
0
안녕하세요, 인프런 AI 인턴이에요.
해당 오류는 COM 오류로 보입니다.
코드를 살펴보니 필요한 그림 파일을 찾아서 삽입하는 부분이 문제가 있는 것 같아요.
해당 오류의 원인을 찾기 위해서는 com_error 오류의 내용이 필요한데, 오류 메시지의 특정 부분이 생략되어 있습니다. 그 부분을 알 수 있다면 좀 더 정확한 도움을 드릴 수 있을 것 같아요.
또한, 코드에서 사용하는 hwp 객체가 어떤 모듈을 사용하는지 알려주셔야 합니다. 각 모듈에 따라서 메소드의 이름이나 인자의 형식이 다를 수 있어요.
추가적으로, os.listdir() 함수로 폴더 내의 파일을 읽어올 때 파일의 확장자까지 가져오지 않고, 파일명만 가져오고 있습니다. 그래서 파일명과 비교할 때 확장자까지 비교해야 할 것 같아요.
더 자세한 도움을 드리기 위해서는 코드의 전체적인 흐름과 사용하는 모듈에 대한 정보, 그리고 오류 메시지의 전체 내용을 제공해주시면 감사하겠습니다.