본문 바로가기

지속가능티끌/Python   ( 38 )


Python . 스레드 . 함수 , 클래스 파이썬 함수 를 스레드로 실행. - 아래 코드에서 my_thread.start() 실행하면 함수 my_function 이 스레드로 실행된다. import threading def my_function(): while True: print('endless') my_thread = threading.Thread(target = my_function) # my_thread.daemon 을 True로 설정하면 메인프로세스 종료된 경우 스레드도 같이 종료되게 하는 설정. # 기본값은 False 로 되어있음. #my_thread.daemon = True my_thread.start() 파이썬 클래스 를 스레드 클래스에서 상속 받기 - 클래스 threading.Thread 를 상속받아, 내 클래스를 만들고, thre.. 2022. 2. 11.
파이썬 . PYTHONPATH 환경변수 . import 검색 경로 추가 PYTHONPATH 추가 - 파이썬 전역적으로 적용되는 import 경로 설정. 추가방법. 윈도우10 : 제어판 -> 시스템 및 보안 -> 시스템 -> 왼쪽메뉴의 고급시스템 설정 클릭하여 뜬 창에서 버튼 "환경변수" 클릭 하여 뜬 창에서 시스템 변수 영역의 버튼 "새로만들기..." 클릭하여 변수이름에 PYTHONPATH 변수 값에 추가할 경로 기록 , 위와 같이 PYTHONPATH 에 기록한 경로는 파이썬의 sys.path 에 추가되므로 import 시에 PYTHONPATH 에 있는 파이썬 파일들도 검색가능하다. 참고 : sys.path 보는 구문. import sys print(sys.path) Visual Studio 파이썬 개발환경 에서 PYTHONPATH 적용하기 - VS 파이썬 프로젝트에서 아래.. 2022. 2. 11.
Python . 실행시 인자 전달 파이썬 실행시 인자 전달 방법 - 아래 구문처럼 .py 뒤에 인자 기록. 스페이스 기준으로 다른 인자로 인식한다. my_code.py arg1 arg2 arg3 파이썬 코드에서 인자 활용 ### 파이썬 코드에서 인자 정보 활용예 import sys # sys.argv[] 의 인덱스 0 에는 항상 현재 실행 스크립트의 전체 경로 있음. 스크립트를 exe로 만들어 실행시킨 경우에는 경로 기록없이 파일명.exe 만 기록되어있음. # 스크립트 실행시 인자 arg1 arg2 arg3 .. 식으로 전달하면 sys.argv[1] 부터 arg1,2,3 순서로 기록됨. print('num of sys.argv = ' , len(sys.argv)) # 스크립트 실행시 전달한 인자 수량 + 1 for idx in range.. 2022. 1. 28.
Python . Visual Studio 파이썬 한글 깨짐 해결책 문제 상황. Visual Studio 의 파이썬으로 저장된 .py 파일의 인코딩이 utf-8 이 아닌 경우에는 소스코드의 주석에서의 한글 이나 변수에 한글 대입 하면(a = '한글') 실행시 에러 발생한다. 해결책 - 부실한 해결책. - 통상 .py코드의 1줄 혹은 2줄 지점에 # coding=utf-8 이라고 기록하면 주석에 한글 사용하는 것은 가능하나 a = '한글' 식의 한글 사용 불가하므로 완전한 해결책 아님. 완전한 해결책. Visual Studio 2022 의 파이썬에서 파일 저장시 기본 encoding 은 Korean - codepage 949 으로 되어있다. 이 상태로는 소스내에 한글 표현 불가함. Visual Studio 에서 파이썬 파일 저장 encoding 을 UTF-8 with si.. 2022. 1. 27.
Visual Studio 2022. 파이썬 개발환경 설치 사전 준비 : Visual Studio 2022 설치된 상태. 파이썬 개발 환경 설치 방법 Visual Studio 실행하여 메뉴 : Tools -> Get Tools and Featues... 클릭하여 뜬 아래 창에서 상단 탭 워크로드 에서 Python 개발 선택하고 버튼 수정 클릭. 첫 등록 : 2021.12.04 최종 수정 : 단축 주소 : https://igotit.tistory.com/3090 2021. 12. 4.
Python. 문자열 + 연산자 메모리 누수 생김 . 주의 필요. 개요 파이썬은 메모리 해제가 자동으로 이뤄진다길래 아무거나 사용해도 되는 줄 알았으나, 메모리 누수 생기는 경우 경험함. 오류 상황예. - 아래 함수는 거래소에서 웹소켓기반 실시간 수신되는 체결 틱 데이터를 DB 에 저장하는 함수인데 첫부분에 SQL 쿼리문 만들기 위하여 문자열 + 연산자로 처리했었던것. - 암호화폐 거래소의 30여개 종목의 실시간 체결 틱 데이터 수신 될 때 마다 아래 함수 호출하는데 2일 정도 지나면 반드시 PC 메모리 다 잡아먹고 먹통 만들었음. def insert_new_fill(_symbol, _trade_price, _trade_volume, _ask_bid,_trade_date, _trade_time, _i_timestamp): str_sql_insert = 'INSERT I.. 2021. 11. 4.
Python. numpy 평균 ,분산, 표준편차 , 최대, 최소 import numpy list_val = [1,2,3,4,5,6,7,8,9,10] numpy.mean(list_val) # 평균 numpy.var(list_val) # 분산 numpy.std(list_val) # 표준편차 numpy.max(list_val) # 최대 numpy.min(list_val) # 최소 첫 등록 : 2021.10.10 최종 수정 : 단축 주소 : https://igotit.tistory.com/2939 2021. 10. 10.
Python. List 리스트 my_list = list() my_list.append(100) # [100] 리스트 마지막에 값 100 추가. my_list.append(200) # [100, 200] my_list.append(300) # [100, 200, 300] del my_list[0] # 인덱스 0의 리스트 요소 제거. 100 제거되어 [200,300] my_list.remove(200) # 값이 200 인 요소 제거. 200이 여러개 있다면 첫번째 요소만 삭제됨. # 리스트 요소 수량 len(my_list) 첫 등록 : 2021.10.10 최종 수정 : 단축 주소 : https://igotit.tistory.com/2938 2021. 10. 10.
Python. 클래스 파이썬의 클래스 멤버함수 - 클래스 멤버함수 정의시 첫인자 필수 기록해야하며 멤버함수 호출시에 이 인자에 값 전달하지 않음. 통상 인자명을 self 로 함. - self 인자는 C++ 클래스에서의 this 와 비슷. ## 클래스 정의 예. class my_class: # 이 자리에서 선언된 변수들은 본 클래스의 모든 인스턴스에서 공유됨. str_common = ' 클래스 인스턴스들 에서 공유되는 변수임' # 생성자(constructor). def __init__(self,a0): self.a0 = a0 self.my_str = '문자열' self.my_int = 100 self.my_float = 100.0 # 클래스 멤버함수(=메서드) 의 첫번째 인자 필수 요구됨. 통상 명칭을 self 로 함. def.. 2021. 10. 6.
Python. round. 실수 소수점 자리수 자르기. round round(3.1415) # 3 2번인자에 값 기록하지 않은 경우 round(3.1415,3) # 3.142 2번인자에 기록된 소수점이하 3에서 자르는데, 4번 자리 수가 5여서 반올림처리됨. round(3.1414,3) # 3.141. 소수점이하 3에서 자르는데 4번 자리 수가 4여서 내림 처리됨. ## 2번 인자에는 음수도 가능하며, 이 경우 십의 자리수자르면서 반올림, 내림 이뤄짐. round(31.415, -1) # 30.0 round(31.415, -2) # 0.0 round(314.15, -2) # 300.0 round(354.15, -2) # 400.0 . 십자리수 2 에서 자르는데 그 아래값이 5여서 반올림 되어 400 이 됨. round(454.15, -2) # 500.0 ##.. 2021. 9. 10.
Python. 비프음 출력 파이썬에서 비프음 출력하기. - 아래예는 2000Hz 주파수인 소리를 500msec 동안 출력함. import winsound as wsd wsd.Beep(2000,500) # frequency(37~32767 Hz) , duration ( msec 단위) 첫 등록 : 2021.09.08 최종 수정 : 단축 주소 : https://igotit.tistory.com/2910 2021. 9. 8.
Python. json.loads 의 문자열 변환 특성 . jsoncpp 와 호환 안됨 json 형식의 문자열 str_json 을 파이썬의 json.loads(str_json)로 변환 한것을 다시 문자열로 변환 str(json.loads(str_json)) 하면 원래의 문자열에서의 형식과는 다르게 출력되는 것들이 있다. 현재확인된것은 2개 . 큰 따옴표는 작은따옴표로 출력됨. "data" -> 'data' 부울 값 표현의 첫글자 대문자로 표현됨. false, true -> False, True 상기 파이썬 형식의 문자열을 c++의 Jsoncpp 에서 수신받아 Json::CharReader* json_reader->parse(파이썬에서 수신받은 문자열) 로 파싱할려고 하면 오류 발생한다. jsoncpp 에서는 모두 큰 따옴표, 부울 표현형식은 모두 소문자여야 정상 파싱가능하므로 해당 문자열 .. 2021. 1. 7.
Visual Studio 파이썬 개발환경에서 라이브러리 패키지 설치 방법 Visual Studio 파이선 개발환경 내에서 PYPI 로 배포되는 모든 패키지들을 쉽게 설치 가능. Visual Studio. Python 환경 창에서 패키지 설치 Visual Studio 로 파이썬 프로젝트를 오픈했을때 왼쪽의 Python Environment (파이썬 환경) 창에서 적용할 파이썬 버전도 선택할 수 있고, 선택된 특정 파이썬 버전에서 PYPI 패키지 검색도 가능하고 즉시 설치도 가능하다. 아래 설명은 패키지 matplotlib 설치과정에 대한 설명. Python 환경 창에서 패키지 탭을 선택하면 현재 설치된 패키지 목록이 표시된다. 아래 그림에서 pip, setuptools 은 이미 설치되어있는것을 보여준다. 검색창에 설할 패키지 이름을 입력하면 자동으로 보이는 Run command.. 2020. 9. 11.
Python 설치. 2.7 , 3.8 개요 파이썬 버전 2.7.x 설치과정 정리. Python 2.7 설치 상세 - 설치대상 : win7/win10 64bit - 파이썬 버전 : 2.7.15 ( 2018년 5월 1일 배포. 현재 2018년 9월 11일 2.7 에서는 가장 최신버전) 설치파일 다운로드 주소 : https://www.python.org/downloads/ 상기 주소 접속하여 Python 2.7.15 의 윈도우 64비트 버전을 선택하여 다운로드 받고 실행하여 설치 진행. 설치시 주의사항. - 특별한것 없음. - 아래 동영상에서 다운로드부터 설치, 정상설치여부 확인 과정까지 상세보임. Python 3.8 설치. 2020. 09. 11- 이전 버전 2.7 은 더 이상 사용할 일도 없어져서 제거하고 현재 최신버전인 3.8.6rc1 64.. 2020. 9. 11.
Python. 딕셔너리. 딕셔너리 생성하기. - 딕셔너리 변수 생성할 때부터 키와 값을 정의하면서 만들수도 있고, 빈 딕셔너리 만들어도 됨. # 딕셔너리 생성하면서 키, 값 지정. my_dict = {'a': 1, 'b': 2, 'c': 3} # 빈 딕셔너리 생성. # 아래 2가지 모두 동일한 결과. my_dict = {} my_dict = dict() #dict() 로 값대입하면서 딕셔너리 생성하기. #아래 2개모두 동일 결과. my_dict = dict(a=1, b=2, c=3) my_dict = dict({'a': 1, 'b': 2, 'c': 3}) get() . 키에 해당하는 값 받기. my_dict['a'] 처럼 키의 값을 받는 방법도 가능하고 get 함수 이용하여 받는것도 가능. my_dict = {'a': 1, 'b.. 2020. 7. 5.
Python. 파이썬 에서 외부 파일 읽기. 한 줄씩 읽고 개행문자 제거. 파이썬에서 읽어들일 파일예 - 윈도우에서 메모장으로 새 텍스트 만들기로 utf-8 encoding 으로 저장한 파일명 : apikey_url.txt - 파일에 기록되어있는 내용. 한 줄단위로 마지막 부분에 엔터 쳐서 줄바꿈되어있음. wss://stream-testnet.bybit.com/realtime wss://stream-testnet.bybit.com/realtime_public wss://stream-testnet.bybit.com/realtime_private https://api-testnet.bybit.com 파일 오픈하고 한 줄 단위로 읽기. - 정확하게는 파일에 있는 모든 엔터단위로 읽기 - 파일에 기록된 내용없이 엔터만 있는 것도 모두 개별 라인으로 읽기 처리됨. #### 파일오픈하고,.. 2020. 4. 6.
Python. 파이썬 실행파일 만들기. Pyinstaller 이용 개요 - Pyinstaller 이용하여 파이썬으로 작성된 코드를 개발환경이 아닌 일반 PC 에서 실행시키기 위한 실행파일 만드는 방법. 사전준비 . Pyinstaller 설치. - Pyinstaller 설치 구문 ; pip install pyinstaller 실행하면 자동으로 설치완료됨. 설치소요시간 2분 이내. .py 파일 실행파일로 만들기. 실행파일로 만들 파이썬 파일 있는 경로에서 커맨드 창에 아래구문 실행하면 파이썬 파일명과 동일한 이름의 .exe 파일이 폴더 dist 속에 새로 만들어진다. 옵션 --onefile (-F 옵션과 동일) 은 실행에 필요한 dll 등을 모두 exe 파일 1개에 다 포함시키는 옵션. pyinstaller --onefile 파일명.py pyinstaller -F 파일명... 2020. 4. 6.
Python. 다른 파이썬 파일의 함수 호출하기 . import, from import, import as 개요 - 파이썬 코딩시 1개의 파일에 모든 소스코드 구현해버리면 전체 코드 구조 가독성 훼손되어 유지보수 피곤해진다. - 분리가능한것들을 적절하게 별도의 파일에 구현하고 메인에서 해당 파일 import 하여 활용. ######## 파일 1. bybit_function.py def my_function1(): print("Hello Bybit"); ################################################################################## ###### 파일 2. main.py import bybit_function # 파일의 확장자 py 없이 임포트. bybit_function.my_function1() # bybit_function.py 의 함수 m.. 2020. 3. 19.

   
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     선물 인버스 |선물 USDT