안녕하세요 일코님 저번 답변으로 큰 도움을 얻었습니다. 감사합니다. 현재 제가 코드를 실행하면 아래와같은 경고메시지가 뜨는데.. 하나씩 실행해가면서 봤을떄는 문제가 없었는데 아래와 같은 문제가 왜 발생하는지 모르겠습니다. 어떨땐 뜨고, 어떨땐 안뜨는데, 도무지 알수가 없네요... 전체 코드를 첨부드립니다. import os from tkinter.filedialog import askopenfilename, askopenfilenames from pyhwpx import Hwp def 타겟인덱스찾기(target,학년): # FindReplace 설정 초기화 hwp.HAction.GetDefault("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) hwp.HParameterSet.HFindReplace.FindString = f"{target[0]}년도 {target[1]:02}월 {학년} 학평 {target[2]:02}번" hwp.HParameterSet.HFindReplace.Direction = hwp.FindDir("Forward") hwp.HParameterSet.HFindReplace.FindType = 1 hwp.HParameterSet.HFindReplace.IgnoreMessage = 1 # 메시지 무시 설정 output = hwp.HAction.Execute("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) if output == False: hwp.HAction.GetDefault("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) hwp.HParameterSet.HFindReplace.FindString = f"{target[0]}년 {target[1]:02}월 {학년} 학평 {target[2]:02}번" hwp.HParameterSet.HFindReplace.Direction = hwp.FindDir("Forward") hwp.HParameterSet.HFindReplace.FindType = 1 hwp.HParameterSet.HFindReplace.IgnoreMessage = 1 # 메시지 무시 설정 return hwp.HAction.Execute("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) else : return True def 워크북복수선택(): """ 선택한 모든 파일들의 전체경로를 가져오는 함수 """ filelist = askopenfilenames(title="문제를 추출할 아래아한글 문서를 모두 선택해주세요.", initialdir=os.getcwd(), filetypes=[("아래아한글파일", "*.hwp *.hwpx")]) return filelist # hwp = Hwp().hwp # 현재 열린 한글 실행 if __name__ == '__main__': hwp = Hwp(visible=True) 학년 = "고2" 타겟리스트 = [(21,11,30), (21,9,30), (20,6,3), (23,6,31), (22,11,31), (23,6,34) , (22,3,33), (21,6,33), (22,11,35), (22,6,35), (23,6,36) , (21,3,37), (20,9,38), (23,6,38), (21,9,39), (20,11,38), (22,9,40), (20,6,40), (23,9,30), (20,11,30) ] doc_1 = hwp.XHwpDocuments.Item(0) # output 문서 hwp.SetMessageBoxMode(0x20000) # 예,아니오 경고창은 노로 대답하기 워크북리스트 = 워크북복수선택() for 파일인덱스, 워크북 in enumerate(워크북리스트, start=1): doc_2 = hwp.XHwpDocuments.Add(False) # input문서 새로운 hwp열고 할당 (False=새로운창 / True = 기존hwp의 탭으로) hwp.Open(워크북) hwp.SetMessageBoxMode(0x20000) # 예,아니오 경고창은 노로 대답하기 doc_2.SetActive_XHwpDocument() # input문서 # Unit 추출하기 # '게시금지 ' 로 검색 hwp.HAction.GetDefault("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) hwp.HParameterSet.HFindReplace.FindString = "게시금지 " hwp.HParameterSet.HFindReplace.Direction = hwp.FindDir("Forward") hwp.HParameterSet.HFindReplace.FindType = 1 hwp.HParameterSet.HFindReplace.IgnoreMessage = 1 # 메시지 무시 설정 hwp.HAction.Execute("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) hwp.HAction.Run("Cancel") # Unit 칸으로 이동하여 복사하기 hwp.HAction.Run("MoveParaEnd") hwp.HAction.Run("MoveRight") hwp.HAction.Run("MoveSelParaEnd") # 현재 문단의 끝까지 블록 설정 hwp.HAction.Run("Copy") # 블록 설정된 텍스트를 클립보드로 복사 hwp.HAction.Run("Cancel") doc_1.SetActive_XHwpDocument() # output 문서 활성화 # 복사한 텍스트를 문서에 입력 if 파일인덱스 != 1 : hwp.HAction.Run("MoveDocEnd") hwp.HAction.Run("BreakPage") hwp.HAction.Run("Paste") hwp.HAction.Run("MoveSelLineBegin") for _ in range(10): hwp.HAction.Run("CharShapeHeightIncrease") # 텍스트 크기 증가 hwp.HAction.Run("Cancel") hwp.HAction.Run("MoveParaEnd") hwp.HAction.GetDefault("PageSetup", hwp.HParameterSet.HSecDef.HSet) hwp.HParameterSet.HSecDef.PageDef.Landscape = 1 hwp.HParameterSet.HSecDef.PageDef.BottomMargin = 0 hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyClass", 28) hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyTo", 2) hwp.HAction.Execute("PageSetup", hwp.HParameterSet.HSecDef.HSet) doc_2.SetActive_XHwpDocument() # input 활성화 for 인덱스,타겟튜플 in enumerate(타겟리스트, start=1) : hwp.HAction.Run("MoveDocBegin") # 타겟 찾아서 쪽 복사하기 if 타겟인덱스찾기(타겟튜플,학년): hwp.HAction.Run("CopyPage") # 두번째 문서 활성화 하고 쪽 붙여넣기 doc_1.SetActive_XHwpDocument() # output 문서 활성화 hwp.HAction.Run("MoveDocEnd") hwp.HAction.Run("BreakPage") hwp.HAction.Run("PastePage") if 인덱스 > 1: hwp.SetMessageBoxMode(0x20) hwp.HAction.Run("MovePrevParaEnd") hwp.HAction.Run("Delete") hwp.HAction.Run("Delete") hwp.HAction.Run("MoveDocEnd") doc_2.SetActive_XHwpDocument() # input 문서 활성화 현재경로 = doc_2.FullName doc_2.Close(False) #TRUE : 내용이 변경된 경우 닫지 않음, FALSE : 강제로 닫음 hwp.SetMessageBoxMode(0xF0000) # 경고창이 기본모드로 바뀜 hwp.SetMessageBoxMode(0xF0) 현재디렉토리 = os.path.dirname(현재경로) 파일이름 = "상세분석_작업완료.hwp" 저장경로 = os.path.join(현재디렉토리, 파일이름) doc_1.SaveAs(저장경로) hwp.Quit() 한두개를 작업할떄는 문제가 없었는데 여러개를 작업하니까 문제가 생기네요..ㅠㅠ 너무 큰 질문을 드리는것 같아 죄송하고 감사한 마음입니다.. 늘 강의 잘 보고있고 업무에 큰도움 받고있습니다 정말 감사합니다.
8번 문제 복습 중 궁금증이 생겨서 질문드립니다. 1) cond = df.loc[2001] > m2001 r1 = sum(cond) cond = df.loc[2003] < m2003 r2 = sum(cond) print (r1+r2) 2) r1 = df.loc[2001] > m2001 r2 = df.loc[2003] < m2003 print (sum(r1+r2)) 1) 같은 경우는 정답 풀이를 그대로 가져와서 출력 값이 202이고, 2) 같은 경우는 제가 다른 방법으로 풀어볼 수 있을까 하는 궁금증에서 적어봤습니다. 출력 값은 202가 아닌 150이 나왔습니다. 둘 다 같은 풀이법 같지만 출력 값이 다른 이유가 궁금해서 질문드립니다 !
문서 두개를 띄워서 작업을 하려고 하는데요. 먼저 한글시작을 하구 hwp = 한글시작(True) def 한글시작(TF): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = TF hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") return hwp 그다음 아래와같이 코드를 작성했는데요. hwp = 한글시작(True) doc_2 = hwp.XHwpDocuments.Add(False) # 새로운 hwp열고 할당 (False=새로운창 / True = 기존hwp의 탭으로) doc_2.SetActive_XHwpDocument() # 두 번째 문서 활성화 hwp.HAction.GetDefault("PageSetup", hwp.HParameterSet.HSecDef.HSet) hwp.HParameterSet.HSecDef.PageDef.Landscape = 1 hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyClass", 24) hwp.HParameterSet.HSecDef.HSet.SetItem("ApplyTo", 3) hwp.HAction.Execute("PageSetup", hwp.HParameterSet.HSecDef.HSet) XHwpDocumnets.Add 를 통해서 새로운 hwp를 열었고, 활성화도 했습니다. 그이후에 한글을 직접 작동하여, 페이지를 가로로 돌리는것(편집용지->가로)을 매크로 녹화했는데요 아래 부분을 입력하고 실행했을 때, hwp.HAction.GetDefault("PageSetup", hwp.HParameterSet.HSecDef.HSet) FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\SAMSUN~1\\AppData\\Local\\Temp\\gen_py\\3.12\\7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0\\ HSecDef.py .18740.temp' 이런 오류 메시지가 터미널에 뜨게됩니다. 반면에, hwp.HAction.Run ("MoveParaEnd")등을 실행했을 떄는 모두 정상적으로 작동합니다. 왜 한글매크로를 녹화한것이 제대로 작동하지 않는걸까요? 잘 알려주셔서 정말 감사합니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 quiz 3 데이터 수를 구할 때선생님께서 알려주신 len(df[cond]) 외에df[cond].shape[0] 이나 df[cond].count()[0]을 사용해도 괜찮나요??값은 동일하게 나옵니다!
안녕하세요! 2유형 강의 수강 중 궁금한 점이 생겨서 질문드립니다! IQR 을 사용하여 이상치를 확인 했을 때, 이상치가 전체 행 대비 적게 있을 경우 해당 행 자체를 삭제해도 무방한가요? 스케일링 시, 이상치가 있을 경우 로버스트 스케일링을 사용하는게 좋다라고 하셨는데 이상치가 있는 컬럼에 대해서만 로버스트 스케일링으로 진행하고, 이상치가 없는 컬럼에 대해서는 MinMax 이나 Z-Score 를 사용하여 구분해서 각각 스케일링 하는게 좋은가요? 2-2. 만약 이상치가 없는 경우에도 로버스트 스케일링을 사용할 경우 다른 스케일링 방식에 비해 성능이 떨어지나요? 감사합니다~!
퇴근 후 매일 강의를 조금씩 듣고 있습니다. 이제서야 작업형 1 강의 목차로 들어왔는데요! 저는 강의 들으면서 pause 누르고 타이핑 해보고 저만의 암기노트를 만들면서 시간 있을 때 외우고 있습니다. 지금부터 조금씩 외우는 이유는 지금 시간 들여서 강의를 들었는데 쭉쭉 넘어가다보면 (물론 타이핑은 겸하면서) 나중에 또 보면 새로울거 같아서 기억이 있을 때 까먹더라도 외우려고 하고 있긴합니다. 다만, 암기를 하니 좀 속도가 더디긴 하네요 ㅠㅠ 지금은 암기하지말고 한번 쭉 따라하면서 듣는게 낫나요? 저는 문제 풀 때 암기가 되어있지 않으면 안풀리는데 이것은 어떻게 해결하면 될까요? 캐글도 풀어야한다고 하셨는데 강의 목차 순서에 있는 것일까요? 강의 목록에 있는 것들만 완벽하게 숙지하면 시험에 무리없나요? 추가 사이트 들어가서 공부할 필요 없이 이 강의로만 끝내고 싶어서요
네이버쇼핑 크롤링 수강 중입니다. 데이터를 엑셀로 저장시 링크를 하이퍼링크로 저장 하고 싶습니다. 즉, 엑셀 오픈해서 링크를 클릭하면 해당 물건이 바로 열리도록 하고 싶습니다. 아래 1번은 되는데, 2번은 되지 않습니다. 문제는 엑셀에서 하이퍼링크 저장시 255자 제한이 있어서 그런 거 같습니다. 데이터 저장 시 해결할 방법이 있을까요? 네이버 링크 link = '=HYPERLINK("' + " https://www.naver.com " + '","링크")' 쇼핑몰 링크 =HYPERLINK(" https://cr.shopping.naver.com/adcr.nhn?x=GwvRQqYCu%2BX8ZwpHCECcSv%2F%2F%2Fw%3D%3DsIn%2F3Yf0iawU%2FzYEzOgBb07i9rrLilELSXaeDEWTHUjtksg%2BYslp4t2Zt1cdDccTdi7DZdZimWRXHZMabDRX2%2B0qx7Bhh0Caeclo2i1Y7qOjFHLn4wLuCnoHhSfPE4oks1bvHhHAfdqzhIkba38yyQMi30QtKP1mA7BYZPpxeJLexWvZfe2todmJfmpbNrXnq6vlxEEPFYikY%2FFgWDJTeh03Mlu1kRkTyoaI3uw69wpRITi0bKHCP2rGy6hahVn%2B%2FZFBJ7H6pZqRmC993ssAkNKg2IE65NtMdlJVi06ALuC2AbCY81f975eS5nfR25FBiP83WAv8GAIoQ0MwLPWeb%2FcJtwFagNdosKd1Zse6UhJ%2BzaLo3YojXuQJMvdaZ%2BI%2FyctBNJeJkeiSk%2FpIY4IZgm7f5ZWpM0X6C8Lqgv9yl84OxyTNOpvF5JKAAUscSxRXpeCJA4vgneLxHO126ixVGIQneuqvZhheEd%2B4ASDHeLEMX6dOjXdNdhYZO31pYVC%2BHCJkBzybiEA%2BrGVfnMGK9vAlypD3xRxtfsji%2Flj2GA5OdSlPOZBN6V54TTL6u%2FzFsCXIMYKkzT061mzrwfgc%2F8GThNu%2B1yBb0rg6nns0Ykn3LVWGr8fvvH1mWvUgXPK6j&nvMid=21813412965&catId=50013800 ","링크")
시험에서는 따로 라이브러리를 추가할 수 없다고 했던것 같은데... 강의에서 공부를 할때 sklearn 등 라이브러리를 불러오는 코드는 시험에서 따로 작성하면 안되지요? 예시 : from sklearn.ensemble import RandomForestClassifier 예시 문장을 시험에서 작성해도 되는지 궁금합니다.