본문 바로가기

Python

[Python] configparser 개발 환경이나 사용자에 따른 설정 파일 만들기 1. configparser > create config file import configparser # config file config = configparser.ConfigParser() # create config file object config['system'] = {} config['system']['title'] = 'Neural Networks' config['system']['version'] = '0.0.1' config 파일 생성 > config['object name'] = {} 으로 섹션 생성 데이터 값은 문자열로만 저장 > 읽고 쓰는 과정에서 전처리 필요 2. config 파일 저장 후 읽기 # save with open('conf.. 더보기
[Python] 실행파일(.exe) 만들기 | pyinstaller ❍ pyinstaller 파이썬 코드를 실행 파일 형태로 패키징하여 사용자가 별도의 python interpreter 없이 해당 프로그램 실행할 수 있도록한다. pip 통해 설치 pip install pyinstaller - pyinstaller 사용하기 위해 프로그램에 필요한 라이브러리와 종속성 설치 필요 - pip로 설치할 경우, 일부 패키지 누락 가능 > 수동으로 패키지 설치 필요 (pathlib 모듈이 설치된 경우, pyinstaller 가 설치되지 않거나 실행되지 않음 > 새로운 가상환경 만들어 pyinstaller 환경 설정) ❍ .py > .exe 해당 경로로 이동 후 명령어 수행 pyinstaller [File].py ┖ build ┖ dist ┖ main.spec 실행 파일은 dist 폴.. 더보기
[Python] Class | Inheritance | Method Overriding | Abstract Class Class, 객체(Object), Instance class = 객체를 만들어내기 위한 틀! 객체는 클래스에서 선언된 틀 그대로 만들어진 실체, 고유한 상태, 이름, 행동을 가진다. 객체의 속성 = 멤버 변수 객체 속성에 영향을 주는 기능/행동 = 멤버 함수(메소드) 인스턴스: 클래스로 만든 객체 (크케 구분짓지 않고 사용하기도 하지만 약간의 차이점 ㅇㅇ) Practice1. class 클래스명: code 메소드는 함수와 동일하게 생성한다. 단, 메서드의 첫 번째 매개변수 = 반드시 self로 지정 - self: 인스턴스 자신을 의미 - 인스턴스 내부 속성을 다루기 위해 자신의 속성을 다룬다는 것을 알려주기 위해 필요 class 클래스명: def 메소드명(self, ...): method code 빈 클.. 더보기
Serial 통신의 Binary protocol과 Text Protocol 통신 프로토콜을 맞추기 위한 수정/보완 작업 - IMU 추가에 따른 프로토콜 재설계 ( 기존 ASCII 전송 => Binary 통신으로 수정 ) - BLE 전송 특징에 부합하도록 설계: 어플리케이션에서 사용하는 데이터에 해당하는 ATT Payload의 데이터량을 고려 (반드시 244Bytes 이하로) 통신 환경 - Binary 통신 (Little-Endian) - 데이터 수집 예제 프로그램 : Insole(STM32, Little-Endian) PC(x86-64, Little-Endian) - 실시간 센서데이터 처리 프로그램 : Insole(STM32, Little-Endian) Jetson Nano(ARM32, Little-Endian) 기존 read_data() 는 ASCII 전송으로, 패킷 손실 사.. 더보기
[PyQt5] Python을 위한 GUI 라이브러리 1. Layout : 어플리케이션 창 위에 위젯을 배치하는 방식 1.1 Absolute positioning 각 위젯의 위치와 크기를 픽셀 단위로 설정해 배치 - 창의 크기를 조절해도 위젯의 크기/위치는 변하지 않아 - 플랫폼에 따라 어플리케이션이 다르게 보일 수 있어 - 폰트 변경 시 레이아웃 망가질 수 있다 => 레이아웃 변경 시 완전히 새로 고쳐야 하므로 매우 번거로움.. 1.2 Box layout QHBoxLayout, QVBoxLayout은 여러 위젯을 수평, 수직으로 정렬하는 레이아웃 클래스 각 생성자는 수평, 수직의 박스를 하나 만들어 더보기
[Python] C 함수 호출을 위한 Wrapper 만들기 '.so' file은 유닉스 계열 운영체제에서 사용되는 공유 라이브러리 파일이다. C/C++로 작성된 소스코드를 컴파일하여 생성한다. C 소스코드 작성 # 'mylib.c' int add (int a, int b) { return a + b; } 적절한 기능을 가진 C 소스 코드를 작성한다. 컴파일 명령 실행 gcc -shared -o mylib.so -fPIC mylib.c -shared: 공유 라이브러리를 생성 -o: 출력 파일의 이름 지정 -fPIC: 위치 독립 코드(Position Independent Code) 생성 .so 파일 생성 확인 현재 디렉토리에 'myjlib.so' 파일이 생성되었는지 확인 '.so' 파일은 C/C++로 작성된 기능을 Python 등 다른 프로그래밍 언어에서 사용할 수.. 더보기
[Python] Flask 기초 Flask 웹 어플리케이션 개발을 위한 파이썬 프레임워크, 최대한 가볍게 개발하기 위해 Flask 사용^^ (파이썬 웹 개발 시 많이 쓰이는 프레임워크: Django) Micro Web Framework: Flask - 최소한의 구성 요소, 요구사항 제공 - 쉽고 필요에 따라 유연하게 사용 가능 - 쉽게 확장할 수 있도록 설계되어 있어 필요한 도구와 라이브러리 자유럽게 선택 적용 가능 Start Flask: Hello, World! pip install Flask from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Hello, World!' if __name__ == '__main__': app.run(debu.. 더보기