분류 전체보기467 [pyhwpx] 스크립트매크로를 파이썬 함수로 바꿔주는 hwp.clipboard_to_pyfunc hwp.clipboard_to_pyfunc 를 설명하기 전에 먼저, 기존에 정의된 스크립트매크로를 한/글에서 직접 실행하는 명령어도 있기는 하다. 바로 hwp.run_script_macro라는 메서드인데, 사용법은 간단하다. hwp.run_script_macro("OnScriptMacro_중국어1성()") 방식으로 사용하면 된다. 대신 유의할 점은, 스크립트매크로 목록의 이름인 "중국어1성"이 아니라 소스코드의 함수명인 "OnScriptMacro_중국어1성()"을 입력해야 한다는 것이다. (괄호 포함) 그런데, 매크로는 수시로 녹화하는 관계로, 지워지거나 변경되는 경우가 잦다. 그래서 특정 매크로를 파이썬 코드로 만들어 두고 싶을 때가 있는데, 이 과정이 어려운 것은 아니지만, 번거롭고 귀찮다. 그래서 .. 2024. 2. 10. [pyhwpx] 페이지별로 분할 저장하기 100장의 문서가 있다고 할 때 페이지별로 1.hwp, 2.hwp, ..., 100.hwp로 저장하는 예제를 진행해보자. 위 문서를 다운받은 후 해당 폴더에서 쥬피터노트북을 실행한다. (본 포스팅에서는 '바탕화면'이라고 가정) 아래 명령어를 실행한다. import os from pyhwpx import Hwp # 바탕화면으로 이동 os.chdir( os.path.join( os.environ["USERPROFILE"], "desktop") ) # 분할파일 저장할 폴더 생성 os.mkdir("result") # 원본문서 열기 hwp = Hwp() hwp.open("표창장100ea.hwp") # 한페이지씩 잘라서 저장하기 hwp.add_doc() # 새 문서 열림 hwp.switch_to(0) # 원본 문서.. 2024. 2. 10. [리눅스] if문 정리 셸스크립트를 처음 접하고 딱 하루 정도가 지날 즈음 든 생각은, 아니, 셸스크립트는 파이썬보다 막장이잖아? 막연하게나마 저런 생각이 들었다. 변수 타입도 없고, 따옴표도 어떤 땐 있으나마나 하고... sh의 "1 2 3 4 5"는 파이썬의 [1, 2, 3, 4, 5]와 같다는 것도 충격이었다. 우선 콤마란 게 필요없다. 어떤 때는 괄호도 필요없다. 또 어떤 경우에는 따옴표도 필요없다ㄷㄷㄷ 하여튼, 셸스크립트의 if문은 파이썬과 상당히 비슷한 면이 있다. 간단한 if문을 써보면 파이썬은 a = 10 if a == 10: print("equal") elif a < 10: print("less than 10") else: print("greater than 10") 이런 느낌이라면, 셸스크립트는 a=9 # 등.. 2024. 2. 10. [리눅스] sh파일을 리포매팅해주는 shfmt shfmt shfmt는 인스톨해야 한다. `sudo apt install shfmt`를 실행했다. 파일명 참 맘에 든다. SHell ForMaT 잖아? 사용법을 간략히 알아봤는데 vim으로 이렇게 개떡같이 짜놓았어도 `shfmt ifex.sh`를 실행하면 아래처럼 출력해준다. 단, 파일이 바뀌어 있지는 않고, 그냥 결과물만 보여준다. 원본을 이대로 수정하려면 `shfmt -w ifex.sh`로 실행하면 된다. 아름답게 바뀌긴 했는데, then을 다음 줄로 내려준다든지, 들여쓰기를 네 칸으로 해준다든지 하는 작업은 하지 않았다. 들여쓰기 네 칸을 적용하려면 '-i 4' 옵션을 추가하면 된다. 이제 좀 예뻐졌는데? 다른 옵션은 없나? -s와 -mn을 각각 실행해보니, -s는 스페이스 네 칸을 탭 하나로 만들.. 2024. 2. 10. [셸스크립트] for문의 스코프를 정하는 do와 done 먼저 파이썬에서는 for문을 통한 반복문의 범위는 들여쓰기로 결정한다.(는 점은 다들 알고 계실 것) #python3 for i in range(5): print(i) print("Keep going!") # 한 번만 출력됨 sh에서는 do와 done 사이에 반복 스코프를 넣으면 된다. #!/bin/bash for i in $* do # 들여쓰기 컨벤션이 궁금하다. echo $i done echo "Keep going!" 갑자기 궁금한 게 생겼다. 파이썬의 range 배열은 sh에서는 어떤 방식으로 만들 수 있을까? ChatGPT에게 물어보자. 이건 뭐, 다른 언어랑 비슷해 보이는 문법이라서 생소하지는 않은데, ...괄호가 두 겹이네. 신기한 건 , `for i in $*` 처럼 사용할 수도 있고, `f.. 2024. 2. 10. [리눅스] 셸스크립트기초 - 지역변수와 전역변수 자바스크립트 같기도 하고, C 같기도 하면서, 파이썬 같기도 한... (사실 sh가 이들을 닮은 게 아니고, 얘들이 sh를 닮은 거겠지.) 셸 스크립트를 공부하는 중에, 전역변수와 로컬변수라는 개념이 내심 반가웠다. 파이썬에서는 함수 안에서 변수를 정의하면 그냥 자동으로 지역변수가 되는데, sh에서는 local 이라는 키워드를 넣어줘야 한다. #!/bin/bash language="Korean" function learn() { local learn_language="English" # 등호 좌우에 빈칸이 있으면 오류남ㅜ. 지역변수 정의 echo "I am learning $learn_language" # echo는 print와 같음. } function print_() { echo "I can spea.. 2024. 2. 10. [리눅스] print 함수를 재정의해봤더니 화면이 와장창 깨진다ㅜ 필자는 현재 zsh에 oh-my-zsh를 설치하고 powerlevel10k 테마를 사용중이다. 아래 내용의 myshell.sh를 만들고, (따라하지 말 것ㅜ) #!/bin/bash function print() { echo $1 } print "Hello world!" 터미널에서 `source ~/myshell.sh`를 실행했더니 테마고 프롬프트고, 모든 화면이 와장창 깨지기 시작했다. 근데 터미널을 재시작해도, 리눅스 재로그인을 해도 깨진 화면이 돌아오지 않아서 여기저기 검색하다가 별 수 없이 ~/.zshrc를 템플릿에서 재복사했더니 정상으로 돌아오기는 했다. 무식한 방법일지도 모르지만 내가 시도한 방법은 rm ~/.zshrc cp ~/.oh-my-zsh/templates/zshrc.zsh-templa.. 2024. 2. 10. [리눅스 문자열 찾기] grep 기본 사용법 grep은 파일이나 출력 등에서 특정 문자열을 찾아낼 수 있는 명령어이며, 리눅스 환경에서 가장 많이 사용되는 명령어 중 하나로 꼽힌다. 다양한 옵션이 있지만 대표적인 사용방법은 아래 세 가지다. 1. grep [패턴] [파일] 패턴에는 따옴표를 넣지 않아도 괜찮지만 패턴 중간에 스페이스가 있는 경우에는 의도한 대로 작동하지 않을 수 있으므로 따옴표를 넣어 주는 것을 추천한다. (작은 따옴표, 큰 따옴표 무관하지만 짝은 맞춰주기) 그리고 패턴에는 일부 정규식이 사용될 수 있다. # ~/.zshrc에서 if문 찾기 grep "if" ~/.zshrc 2. grep [옵션] [패턴] [파일] [옵션]은 수십개라서 한 번에 암기하기에는 많은 양이지만, grep --help 를 통해 천천히 읽어보면서 참고하면 익.. 2024. 2. 9. [pyhwpx] 한/글 업무자동화 예제2(작성중) 보호되어 있는 글 입니다. 2024. 2. 6. 이전 1 2 3 4 5 ··· 52 다음