Programming/python
-
궁금해서 직접 테스트한 결과를 기록합니다. import timeit # test 용 get 함수. 의미 없으니 분석 불필요 def get(p1, p2, p3, p4): return p1+p3+p4 if isinstance(p4, int) else p1+p3+sum(p4) # dict version def set1(p1, p2, p3=44100): sig = {0: p1, 2: get(p1, p3, 1001, [90, 9000])} return sig.get(p2, get(p1, p3, 1001, 90)) # if else version def set2(p1, p2, p3=44100): if p2 == 0: pass elif p2 == 1: sig = get(p1, p3, 1001, 90) elif p2 ..
[python3] dict vs if else vs list궁금해서 직접 테스트한 결과를 기록합니다. import timeit # test 용 get 함수. 의미 없으니 분석 불필요 def get(p1, p2, p3, p4): return p1+p3+p4 if isinstance(p4, int) else p1+p3+sum(p4) # dict version def set1(p1, p2, p3=44100): sig = {0: p1, 2: get(p1, p3, 1001, [90, 9000])} return sig.get(p2, get(p1, p3, 1001, 90)) # if else version def set2(p1, p2, p3=44100): if p2 == 0: pass elif p2 == 1: sig = get(p1, p3, 1001, 90) elif p2 ..
2023.01.26 -
python3 에서 yaml 파일을 다루려면 pyyaml 패키지를 먼저 설치해야 합니다. python3 -m pip install pyyaml 패키지가 없어서 소스에서 설치할 때는 setup.py 를 실행시킵니다. python3 setup.py install 사용할 때는 yaml 만 언급하면 됩니다. import yaml 읽기 - 방법1 test = yaml.load(file("/home/me/test.yaml", "r"), Loader=yaml.SafeLoader) 읽기 - 방법2 data = """ a: 0 b: [1, 2] c: false d: 2.456 """ test = yaml.load(data, Loader=yaml.SafeLoader) ※참고로 Loader 지정 안하면 경고가 따라다닙니다...
[python3] yaml 다루기python3 에서 yaml 파일을 다루려면 pyyaml 패키지를 먼저 설치해야 합니다. python3 -m pip install pyyaml 패키지가 없어서 소스에서 설치할 때는 setup.py 를 실행시킵니다. python3 setup.py install 사용할 때는 yaml 만 언급하면 됩니다. import yaml 읽기 - 방법1 test = yaml.load(file("/home/me/test.yaml", "r"), Loader=yaml.SafeLoader) 읽기 - 방법2 data = """ a: 0 b: [1, 2] c: false d: 2.456 """ test = yaml.load(data, Loader=yaml.SafeLoader) ※참고로 Loader 지정 안하면 경고가 따라다닙니다...
2023.01.19 -
기록용으로 남깁니다. 리눅스에서 많은 유틸 프로그램이 파이프를 통해 stdin 으로 입력을 전달받아 처리하는 기능이 있습니다. 파이썬은 어떻게 가능할지 찾아봤습니다. import sys data = sys.stdin.readline().strip()
[python3] PIPE 등을 통해 stdin 으로부터 입력 받기기록용으로 남깁니다. 리눅스에서 많은 유틸 프로그램이 파이프를 통해 stdin 으로 입력을 전달받아 처리하는 기능이 있습니다. 파이썬은 어떻게 가능할지 찾아봤습니다. import sys data = sys.stdin.readline().strip()
2023.01.11 -
저장용으로 남깁니다. json data 가 연속되게 딱 붙어서 a.json 파일에 저장되어 있다고 할 때 파이프로 넘겨야 한다면, cat a.json | python -c 'import sys; print(sys.stdin.readline().strip())' | python3 -m json.tool 위 명령으로 실행하면 이쁘게 포맷된 json data 를 볼 수 있습니다.
[python3] 못생긴 연속된 json 데이터 이쁘게 출력하기 cli version저장용으로 남깁니다. json data 가 연속되게 딱 붙어서 a.json 파일에 저장되어 있다고 할 때 파이프로 넘겨야 한다면, cat a.json | python -c 'import sys; print(sys.stdin.readline().strip())' | python3 -m json.tool 위 명령으로 실행하면 이쁘게 포맷된 json data 를 볼 수 있습니다.
2023.01.10 -
제목과 같은 상황이 필요해서 찾아봤지만 pandas.Timedelta() 를 제외하고는 찾아보기 힘들었습니다. pandas 모듈을 쓰지 않으면 수동으로 파싱하는 루틴을 만들어야 했습니다. 그래서 편하게(?) 이용할 수 있는 방법을 찾고 또 테스트했습니다. import pandas import datetime def str_to_timedelta(delta: str = None): if not str: return ptd = pandas.Timedelta(str) td = pandas.Timedelta.to_pytimedelta(ptd) return td def str_to_timedelta2(delta: str = None): if not str: return return pandas.Timedelta(..
[python] "1m" 등의 문자열을 받아 시간으로 변환하기제목과 같은 상황이 필요해서 찾아봤지만 pandas.Timedelta() 를 제외하고는 찾아보기 힘들었습니다. pandas 모듈을 쓰지 않으면 수동으로 파싱하는 루틴을 만들어야 했습니다. 그래서 편하게(?) 이용할 수 있는 방법을 찾고 또 테스트했습니다. import pandas import datetime def str_to_timedelta(delta: str = None): if not str: return ptd = pandas.Timedelta(str) td = pandas.Timedelta.to_pytimedelta(ptd) return td def str_to_timedelta2(delta: str = None): if not str: return return pandas.Timedelta(..
2022.09.28 -
기록용으로 남깁니다. os.listdir() 함수로 파일 목록을 가져왔는데 정렬이 되어 있지 않았습니다. 이름대로 반환되는 결과물이 리스트일꺼라고 생각하고 os.listdir().sort() 를 호출했는데 Nonetype 은 sort 할 수 없다는 오류가 떳습니다. 인터넷을 뒤져서 sorted(os.listdir()) 로 원하는 결과는 얻었습니다. 다만, 왜 안되는지는 정확히 알 수 없었습니다. 알게 되면 글 내용을 업데이트하겠습니다. 추정하기로는 iterable 한 객체가 os.listdir() 에서 반환되고 있고, .sort() 는 이를 지원하지 못하고 sorted() 는 이를 지원할 수 있다?? 정도인데 절대로 사실이 아닐 확률이 높을 수 있으니 이유는 각자 찾아보시기 바랍니다.
[python3] 파일 목록 정렬해서 가져오기기록용으로 남깁니다. os.listdir() 함수로 파일 목록을 가져왔는데 정렬이 되어 있지 않았습니다. 이름대로 반환되는 결과물이 리스트일꺼라고 생각하고 os.listdir().sort() 를 호출했는데 Nonetype 은 sort 할 수 없다는 오류가 떳습니다. 인터넷을 뒤져서 sorted(os.listdir()) 로 원하는 결과는 얻었습니다. 다만, 왜 안되는지는 정확히 알 수 없었습니다. 알게 되면 글 내용을 업데이트하겠습니다. 추정하기로는 iterable 한 객체가 os.listdir() 에서 반환되고 있고, .sort() 는 이를 지원하지 못하고 sorted() 는 이를 지원할 수 있다?? 정도인데 절대로 사실이 아닐 확률이 높을 수 있으니 이유는 각자 찾아보시기 바랍니다.
2022.08.18 -
라 쓰고 간단한 나만의 해결 기록이라 읽음.. 그냥 pip3 로 opencv-python 을 설치하거나 opencv-contrib-python, opencv-python-headless 등의 패키지로는 전혀 해결이 안되었습니다. import cv2 만 실행해도 오류가 발생했었거든요... (venvimg) D:\Users\JHG\Documents\work\wiznet\project\SKP\ARHIS\AI\30034>python3 -c "import cv2" Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'cv2' (venvimg) D:\Users\JHG\Documents\work\wizne..
[python3][opencv][windows 10]개발 환경 구축하기라 쓰고 간단한 나만의 해결 기록이라 읽음.. 그냥 pip3 로 opencv-python 을 설치하거나 opencv-contrib-python, opencv-python-headless 등의 패키지로는 전혀 해결이 안되었습니다. import cv2 만 실행해도 오류가 발생했었거든요... (venvimg) D:\Users\JHG\Documents\work\wiznet\project\SKP\ARHIS\AI\30034>python3 -c "import cv2" Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'cv2' (venvimg) D:\Users\JHG\Documents\work\wizne..
2022.07.22 -
기록용으로 남깁니다. 윈도우 서버에서 파일 업로딩이 급할 때 쓸 수 있는 http file server 라는 프로그램이 있습니다. 문제는 이 프로그램이 공유기 상의 포트포워딩을 사용하는 환경에서 잘 동작하지 않습니다. 제공되는 웹페이지에 직접 들어가서 하나 하나 업로드하는 것은 가능하지만 클라이언트 쪽에서 curl 등을 통해 자동 업로드 하는 데에는 문제가 있었습니다. 공유기의 DMZ 기능을 쓸 수 있는 상황도 아닙니다. 인증이 필요없이 잠깐 열었다 닫는 파일 업로딩 용도이고, cli 상에서 실행 가능하여 자동화할 수 있어야 하며, 파일 이름을 변경할 수 있는 기능(원본 aa.png 를 1111-aa.png 로 변경)까지 제공되야 하고, 공유기 환경에서도 동작해야하는데, 그 기능들을 모두 만족하는 프로그..
[python] 파일 업로딩용 http 서버 예제기록용으로 남깁니다. 윈도우 서버에서 파일 업로딩이 급할 때 쓸 수 있는 http file server 라는 프로그램이 있습니다. 문제는 이 프로그램이 공유기 상의 포트포워딩을 사용하는 환경에서 잘 동작하지 않습니다. 제공되는 웹페이지에 직접 들어가서 하나 하나 업로드하는 것은 가능하지만 클라이언트 쪽에서 curl 등을 통해 자동 업로드 하는 데에는 문제가 있었습니다. 공유기의 DMZ 기능을 쓸 수 있는 상황도 아닙니다. 인증이 필요없이 잠깐 열었다 닫는 파일 업로딩 용도이고, cli 상에서 실행 가능하여 자동화할 수 있어야 하며, 파일 이름을 변경할 수 있는 기능(원본 aa.png 를 1111-aa.png 로 변경)까지 제공되야 하고, 공유기 환경에서도 동작해야하는데, 그 기능들을 모두 만족하는 프로그..
2022.04.12