묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
누름틀이나 셀필드와 관계없이 한글파일에서 전체 텍스트 추출하기
일코님, 안녕하세요. 필드 관련 수업을 듣다가 질문드립니다. 지금까지 배운 내용들은 대부분 '부분적'으로 누름틀이나 필드를 사용하여 텍스트를 추출하는 것이었는데, 누름틀이나 필드와 관계없이 문서의 전체 내용을 (양식에도 관계없이) 텍스트 형태로 뽑아내는 것이 가능할까요? 예를 들어, 보도자로 1000개를 다운로드해서 텍스트로 일일히 붙여넣기 보다는, (역시 양식에 관계없이) 자동으로 텍스트를 추출해서 리스트로 정리하는 겁니다. 이러면 특정 기간에 많이 쓰인 단어나, 감성분석, 거시적으로 정부의 보도자료가 어떻게 변해왔는지 등을 알기쉽게 시각화 할 수 있을 것 같은데 살펴봐주시면 감사드리겠습니다. 항상 좋은 컨텐츠 만들어주셔서 감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
표 안에 표가 삽입된 경우 문제 추출 시작 위치 잡기
예제 참고하여 문제를 추출하는 기능을 구현하고 있는데위 사진처럼 표 안에 표가 들어있는 형식을 다룰 때는 추출할 문제의 시작 위치를 어떤 기준으로 잡아야 할까요?찾아가기에서 표를 선택하여 시작 위치를 지정하려고 하면 다음 페이지로 넘어갈 때 추출해야 할 문제가 있는 안쪽 표가 아닌 큰 틀인 바깥쪽 표로 커서가 이동하여 문제 시작 위치를 잡을 수 없는 문제가 발생합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
한글 파일 복사 및 내용 수정 코드에 대한 질문
[응용] 폴더에 있는 한/글 파일을 모두 열기이 코드를 실행하니까 한글파일이 2~100.hwp 생성 되지만, 안에 내용은 바뀌지가 않네요. 어디가 잘못 되었을까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
안녕하세요 표 이미지 삽입에 대해 질문 있습니다
import win32com.client as win32 from tkinter import Tk from tkinter.filedialog import askopenfilenames import os from time import sleep hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") PATH = os.getcwd() def check_hwp(file_name): if 'hwp' in file_name: return True else: return False file_list = filter(check_hwp,os.listdir()) print(file_list) for i in file_list: hwp.Open(os.path.join(os.getcwd(), i)) #파일 열기 #이미지 파일 경로 선택 root = Tk() # 이미지선택창 열기 imagelist = askopenfilenames() root.destroy() # 이미지선택창 닫기 BASE_DIR = imagelist[0].rsplit("/", maxsplit=1)[0] # 이미지리스트에서 경로 추출 imagelist = [i.rsplit("/", maxsplit=1)[1] for i in imagelist] # 이미지리스트에서 파일명만 남김 #이미지입력 hwp.MoveToField('첨부이미지1') hwp.InsertPicture(os.path.join(BASE_DIR, f"{imagelist[0]}.jpg"), Embedded=True, sizeoption=2) hwp.MoveToField('첨부이미지2') hwp.InsertPicture(os.path.join(BASE_DIR, f"{imagelist[1]}.jpg"), Embedded=True, sizeoption=2) hwp.MoveToField('첨부이미지3') hwp.InsertPicture(os.path.join(BASE_DIR, f"{imagelist[2]}.jpg"), Embedded=True, sizeoption=2) hwp.MoveToField('첨부이미지4') hwp.InsertPicture(os.path.join(BASE_DIR, f"{imagelist[3]}.jpg"), Embedded=True, sizeoption=2) sleep(1) hwp.Save() 각 셀에 필드명은 이미 설정된 상태에서 셀마다 이미지를 삽입하려고 하는데 한 줄씩 실행해보니 분명 파일이 선택되고 커서도 셀로 가는데 이미지 삽입이 실행되지 않습니다. 혹시 왜 그런지 알 수 있을까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
한글 2022 보안모듈 사용 가능 여부
안녕하세요! 지난번 질문에 친절하게 답변해주셔서 감사합니다. 다름이 아니라, 보안모듈에 대해서 질문이 있는데요, hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")이 코드를 반복해서 시도하였는데도 계속 False 결과값이 나옵니다. 한글 2022버전이라서 그런 것이 아닌가 조심스럽게 생각해봅니다만 .. 확인할 수 있는 방법이 있을까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
누름틀 없는 한글문서 엑셀로 취합하기 응용 질문드려요
해당 강의 잘 보고 응용해보려고 하는데 잘 풀리지 않는 부분이 있어 문의 드립니다.제가 자동화하고자 하는 파일은 예시의 서식이 여러파일형태로 존재하는 게 아니라 한 파일안에 동일한 양식의 표가 반복되는 형태인데요.동일한 양식의 표를 엑셀에 항목별로 입력하고자 합니다.강의로 예를 들면 강의에서는 용역과제 심의신청서가 각 파일에 1개씩 이어서 폴더내의 파일을 하나하나 열면서 안의 내용을 리스트로 정리하고, 리스트 중 옮길 값을 추출했지만제 경우에는 용역과제 심의신청서가 한 파일에 모두 모여있는 경우라고 할 수 있을 것 같습니다.그래서 파일안에 있는 텍스트를 모두 추출하여 list화 까지는 수행했는데, 거기서 엑셀로 옮길 값만 추출하는데 있어서 어떤 규칙성을 찾기가 어려워서 어떻게 해야할지 좀 막막하네요...예를 들면 예시에서 과제명이 contents[1]이었으면 다음 표에서는 과제명이 contents[26] (<-연구결과활용방안다음)이어야 하는데 중간중간 끊기는 부분이 있는지 갑자기 contents[27]이라던가 번호가 하나씩 밀리는 문제가 발생합니다.이런 경우에는 어떤 for문으로 반복되는 표 양식 안의 내용을 가져올 수 있을까요..?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
pywintypes.com_error: (-2147221021, '작업을 사용할 수 없습니다.', None, None)
안녕하세요!기존에 아나콘다로 32비트 가상환경을 만들어서 win32사용했을때는 오류가 안났는데최근 아나콘다 자체를 64비트로 변경하고64비트 가상환경을 만들어 사용하려하니 아래와 같은 오류가 납니다.찾아보니 32비트 가상환경으로 변경해야한다고 해서 32비트 환경구성 후 진행해도 동일한 에러가 나는데 어떻게 해야하는지 알 수 있을까요? (D:\Anaconda3_envs\dask_3.8.10) C:\Users\user>pythonPython 3.8.10 (default, May 19 2021, 13:12:57) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32Type "help", "copyright", "credits" or "license" for more information.>>> import win32com.client as win32>>> hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")Traceback (most recent call last): File "D:\Anaconda3_envs\dask_3.8.10\lib\site-packages\win32com\client\dynamic.py", line 84, in _GetGoodDispatch IDispatch = pythoncom.connect(IDispatch)pywintypes.com_error: (-2147221021, '작업을 사용할 수 없습니다.', None, None)During handling of the above exception, another exception occurred:Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\Anaconda3_envs\dask_3.8.10\lib\site-packages\win32com\client\gencache.py", line 621, in EnsureDispatch disp = win32com.client.Dispatch(prog_id) File "D:\Anaconda3_envs\dask_3.8.10\lib\site-packages\win32com\client\__init__.py", line 118, in Dispatch dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, clsctx) File "D:\Anaconda3_envs\dask_3.8.10\lib\site-packages\win32com\client\dynamic.py", line 104, in _GetGoodDispatchAndUserName return (_GetGoodDispatch(IDispatch, clsctx), userName) File "D:\Anaconda3_envs\dask_3.8.10\lib\site-packages\win32com\client\dynamic.py", line 86, in _GetGoodDispatch IDispatch = pythoncom.CoCreateInstance(pywintypes.com_error: (-2147221164, '클래스가 등록되지 않았습니다.', None, None)
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
hwp.XHwpWindows.Item(0).Visible = True 명령어 작성시 에러가 뜹니다.
여러 블로그 나 구글링을 해봤는데 보통은 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")이단계에서 에러가 많이 나더군요. 흠 제 컴퓨터가 이상한건지... 도와주세요!
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
필드위치로 커서 옮기기에서 질문
여기서 필드위치로 가서 사진을 붙여놓는데요.그런데 일반적으로 표의 셀이 많을경우 일일이 필드이름을 지정하기 어려울텐데표를 불러와서나무사진4라는 이름과 어떠한 폴더안에 나무사진4.JPG가 일치할 경우 나무사진4의 셀 위에 사진을 크기에 맞추어 붙여넣기 하는방법은 없나요??강의를 진행하다보면 저절로 알 수 있는 부분일까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
특정 셀필드 아래칸으로 이동해 텍스트 입력도 가능한가요?
특정 셀필드 아래칸으로 이동해 텍스트 입력도 가능한가요?예시 코드가 궁금합니다구현하려는 것이 a서식(셀필드 20개)b서식(a서식과 동일한 셀필드 20개 + 별도 @)을자동입력하는 것인데 b서식에만 있는 셀필드에는저런 식으로 접근해서 값을 입력하려고 합니다
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
스타일 정보 조회가 가능할까요?
안녕하세요...파이썬에서 특정한 아래한글화일을 Open 하고, 등록된 스타일 리스트에서 특정한 스타일명의 서체정보를 가지고 올수 있을까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
사진 자동화 문의입니다.
제가 강사님의 블로그를 보고 만들었습니다.제가 생각하는 방법은 표의 이름을 사진의 이름과 일치시켜서 표에 넣으려고 했는데 오류가 나네여import win32com.client as win32 import pandas as pd import numpy as np import os import pyautogui from tkinter import Tk from tkinter.filedialog import askopenfilenames def 한글_시작(): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") return hwp file_list = os.listdir("e:/python22/inflearn_hangeul/img") root = Tk() # 이미지선택창 열기 imagelist = askopenfilenames() root.destroy() # 이미지선택창 닫기 BASE_DIR = imagelist[0].rsplit("/", maxsplit=1)[0] # 이미지리스트에서 경로 추출 imagelist = [i.rsplit("/", maxsplit=1)[1] for i in imagelist] # 이미지리스트에서 파일명만 남김 print(imagelist) 표_리스트 = list(set([i.split(".")[0] for i in imagelist])) 표_리스트.sort() print(표_리스트) hwp = 한글_시작() hwp.Open("e:/python22/inflearn_hangeul/사업개요서_그림작성자동화서식.hwp") hwp.Run("CopyPage") for _ in range(9): hwp.Run("PastePage") for idx, content in enumerate(표_리스트): hwp.HAction.GetDefault("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet) hwp.HParameterSet.HShapeObject.ShapeTableCell.Editable = 1 hwp.HParameterSet.HShapeObject.ShapeTableCell.CellCtrlData.name = content print(content) hwp.HAction.Execute("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet) for j, content in enumerate(표_리스트): hwp.MoveToField(content) # 해당 필드로 이동 hwp.InsertPicture(os.path.join(BASE_DIR, f"{content}.png"), Embedded=True, sizeoption=2) # 이미지 삽입40번째 줄에서 오류가 나구요pywintypes.com_error: (-2147417851, '서버에서 예외 오류가 발생했습니다.', None, None)
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
API문서
한글 API문서는 어디서 받나요?강의 보니까 그 문서 보면서 하시던데 저는 못찾겠어요
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
문서 내 특정 표의 내용 읽기
한 문서 안에 표가 여러개 있을 때하나씩 접근해서 표의 행과 열, 그리고 셀로 접근해서셀의 데이터를 읽어 오고 싶습니다. "한/글 표에 데이터프레임 채우기" 강의에서 특정 표로 접근하는 부분은확인하고 잘 되고 있습니다.여기서 각 셀을 순환하면서 접근하여 각 셀 내에 있는 텍스트를 읽어 오고 싶습니다. 답변 부탁 드립니다. 감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
복습하고 있는데,,,
import win32com.client as win32hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")단순하게 이 코드를 실행하는데 아래와 같은 에러가 발생합니다 pip install도 안되고 pip install --upgrade도 안됩니다 ㅜㅜ --------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import win32com.client as win32 3 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") 5 hwp.XHwpWindows.Item(0).Visible = True File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\__init__.py:8 5 import os 6 import sys ----> 8 import pythoncom 9 import win32api 11 # flag if we are in a "frozen" build. File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\pythoncom.py:2 1 # Magic utility that "redirects" to pythoncomxx.dll ----> 2 import pywintypes 4 pywintypes.__import_pywin32_system_module__("pythoncom", globals()) File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32\lib\pywintypes.py:126 122 sys.modules[modname] = old_mod 123 globs.update(mod.__dict__) --> 126 __import_pywin32_system_module__("pywintypes", globals()) File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32\lib\pywintypes.py:52, in __import_pywin32_system_module__(modname, globs) 47 raise ImportError( 48 "Module '%s' isn't in frozen sys.path %s" % (modname, sys.path) 49 ) 50 else: 51 # First see if it already in our process - if so, we must use that. ---> 52 import _win32sysloader 54 found = _win32sysloader.GetModuleFilename(filename) 55 if found is None: 56 # We ask Windows to load it next. This is in an attempt to 57 # get the exact same module loaded should pywintypes be imported (...) 66 # That shouldn't really matter though, so long as we only ever 67 # get one loaded. ImportError: DLL load failed while importing _win32sysloader: 지정된 모듈을 찾을 수 없습니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
모든 글자에 글자모양, 문단모양 변경없이 스타일 값만 바꿀 수 있을까요?
안녕하세요 해당 수업 덕분에 한글을 좀 더 잘 쓸수 있게 되었습니다.여러문서를 이리저리 합치다 보니 스타일이 막 뒤죽박죽으로 섞여서예를 들어 바탕체, 바탕체사본1, 바탕체사본2 이렇게 섞여있어서 스타일을 좀 정리하고 싶은데기존에 보니 모든 스타일을 바탕글로 바꾸는 코드는 있던데표 안에는 적용이 안되고 서식복사기능을 사용하다보니 글씨 모양(볼드체나 색등)이 바뀌게 되던데 본문에 모든 글씨의 글씨모양이나 문단모양, 자간은 그대로 하고 스타일 정보만 바꾸고 싶은데 방법이 있을까요? 생각중인건 한 글자씩 글씨의 모든 정보 조회-> 각 정보를 변수에 저장 -> 원하는 스타일 변경 -> 복사한 변수정보로 대치 하면 될 꺼 같긴 한데, 보통 액션 자체에 변수초기화가 디폴트로 들어가다보니 이렇게 코드를 만드는게 맞는지 궁금합니다. 아니면 스타일값만 바꾸는(글자는 현재보이는 그대로) 다른 액션이나 파라미터셋이 있는지 궁금합니다. 내용이 복잡하긴하지만 조금 힌트라도 주시면 감사하겠습니다
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
지난번 질문인데..
이전 문의내용인데 혹시 방법이 없을까요?ㅜㅜ한글 2022인데 그것과 상관있을까요? 그전버전에서는 이상없었습니다.#Python#한컴오피스
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
자간 자동조정 프로그램 만들어보기
'자간 자동조정 프로그램 만들어보기'이 챕터 설명이 좀 부족해요..코드에 대한 자세한 설명을 듣고 싶어요
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
날짜 뒤에 요일 붙이기 질문
import os import datetime as dt from time import sleep import win32com.client as win32 def init_hwp(): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL","FilePathCheckerModule") return hwp hwp = init_hwp() #hwp.Open(r"D:\\SHW\\PROGRAM\\PYTHON\\hwp\\data\\실작업공정표.hwpx") hwp.Open(os.path.join(os.getcwd(), r"D:\\SHW\\PROGRAM\\PYTHON\\hwp\\data\\실작업공정표.hwpx")) def get_value(): hwp.InitScan(Range=0xff) # 추출범위를 "선택영역"으로 지정 text = hwp.GetText()[1] # 선택범위 문자열값 추출 hwp.ReleaseScan() # 검색종료 return text # 추출값 리턴 def get_weekday(text): week_list = ["월", "화", "수", "목", "금", "토", "일"] month, day = [int(i) for i in text.split(".")[:2]] week_num = dt.date(2022, month, day).weekday() week_day = week_list[week_num] return f"({week_day})" def insert_text(text): act = hwp.CreateAction("InsertText") pset = act.CreateSet() pset.SetItem("Text", text) act.Execute(pset) if __name__ == '__main__': hwp.FindCtrl() # 표 선택 hwp.Run("ShapeObjTableSelCell") # 첫 번째 셀로 진입(셀선택상태) while True: # 무한반복 text = get_value() # 셀의 텍스트 추출 if text.endswith("."): # 셀 안의 텍스트가 "."으로 끝나면(날짜셀을 구분하는 임의의 방법) weekday = get_weekday(text) # 요일 파악 hwp.Run("Cancel") # 셀선택 취소 hwp.Run("MoveLineEnd") # 문자열 끝으로 이동 insert_text(weekday) # 요일 삽입 hwp.Run("TableCellBlock") # 다시 셀선택 if not hwp.HAction.Run("TableRightCell"): # 우측으로 이동하다 break # 끝에 도달하면 while문 종료 아무리 해도 문서에서 변경이 안일어나는데 뭐가 문제인지 모르겠습니다.그리고 마지막 if 문에서if __name__ == '__main__':이게 무슨 의미인지 설명 부탁 드립니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
hwp 문서 내의 개체를 파일명으로 찾는 방법이 있을까요?
먼저, 강의 감사합니다. 많은 도움이 되고 있습니다!그림파일로 입력된 원번호를 텍스트 원번호로 교체하고 싶습니다. 문서에 삽입된 그림파일의 파일명(개체 설명문에 나오는)으로 객체를 찾는 방법이 궁금합니다.