프로그래밍/Python 82

[Python] E4446A Spectrum Analyzer 화면캡쳐하기 (PyVISA)

개요 PyVISA를 이용하여 E4446A Spectrum Analyzer 계측기의 현재 화면을 그대로 캡쳐하여 가져오는 방법을 알아 보도록 하겠습니다. SCPI 명령을 이용한 화면캡쳐하기 아래는 E4446A Spectrum Analyzer 계측기의 현재 화면을 캡쳐하여 가져와 파일로 저장하는 코드입니다. from pyvisa import ResourceManager _host = '192.168.0.47' _port = 5025 rm = ResourceManager() # visa 객체를 생성합니다. # 지정한 HOST와 PORT를 사용하여 서버에 접속합니다. psa_client = rm.open_resource(f'TCPIP{_port}::{_host}::INSTR') print (psa_client...

[Python] pytube에서 "KeyError('streamingData')" 오류 발생 문제

문제점 및 증상 pytube를 이용하여 개인적인 유튜브 영상 다운로더를 만들어서 이용하고 있었는데, 얼마전부터 계속하여 "KeyError('streamingData')" 오류가 발생하며 영상 다운로드가 실패하였습니다. KeyError: 'streamingData' 해결 과정 구글 검색을 통하여 여러 가지를 확인해 보니, pytube 패키지를 새로 설치해보라는 것들이 많아서 "pytube"를 제거하고, "pytube3"를 설치해보고 하였으나 오히려 다른 문제가 발생하였습니다. ... File "C:\Dev\Python\Python310\lib\urllib\request.py", line 563, in error return self._call_chain(*args) File "C:\Dev\Python\Py..

[Python] Qt5 UI의 폰트 및 컨트롤이 깨져서 표시되는 문제

개요 마소의 서피스 노트북을 이동할 때 이용하고 있는데, 동일한 UI 소스를 실행했는데, PC에서는 정상적으로 표시되던 UI가 서피스 노트북에서는 다음과 같이 원래 모습과 다르게 나오는 현상이 발생하였습니다. 해결 방법 가장 손쉬운 방법은 프로그램의 메인으로 가장 처음 실행되는 소스에 다음 환경설정 변수를 추가하는 방법입니다. from os import environ environ['QT_AUTO_SCREEN_SCALE_FACTOR'] = '1' # 모니터 해상도에 따른 폰트 및 컨트롤 크기 자동 조정 두 번째 방법은 Qt 설정을 직접 변경하는 방법입니다. from PyQt5 import QtWidgets, QtCore, QtGui QtWidgets.QApplication.setAttribute(QtCo..

[Python] error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

문제점 및 증상 잘 동작하던 코드를 다른 곳으로 복사하여 실행하였더니, 다음과 같은 오류가 발생하였습니다. (rknn) hunature@orangepi5:/opt/hunature/vpc_gabo/demo$ python rknn_demo1.py --> Load RKNN model done [ WARN:0@0.178] global loadsave.cpp:244 findDecoder imread_('./space_shuttle_224.jpg'): can't open/read file: check file path/integrity Traceback (most recent call last): File "/opt/hunature/vpc_gabo/demo/rknn_demo1.py", line 77, in img ..

[Python] PNA Network Analyzer에서 현재 화면 데이터 다루기

개요 Keysight PNA Network Analyzer (회로망분석기)를 이용하여 현재 측정되어 표시되는 데이터를 SCPI 명령을 이용하여 다루는 방법에 간단하게 정리해 둡니다. 화면 데이터 CSV로 저장하기 현재 화면에 표시되는 측정 데이터를 CSV 파일로 저장하는 SCPI 명령은 다음과 같습니다. MMEM:STOR:SCR 'filename.csv' 위 명령에서 "filename.csv"는 저장할 파일의 이름과 경로를 나타내는데, 확장자는 CSV를 사용해야 합니다. 예를 들어, C드라이브의 "Temp" 폴더에 "data.csv" 파일로 저장하고 싶다면, 다음과 같이 명령어를 입력하면 됩니다. MMEM:STOR:SCR 'C:\Temp\data.csv' 위와 같이 명령을 보내면, 현재 화면에 보이는 그..

[Python] RKNN_toolkit2를 이용한 onnx -> rknn 모델 변환 소스

개요 ROCK5 model B SBC를 구매하여 AI 모델 변환하는 소스를 작성하여 보겠습니다. onnx -> rknn 변환 소스 구현 동작 환경 구성은 Ubuntu 20.04 x86_64 OS에 도커를 이용하여, "RKNN_toolkit2" 패키지를 설치하였습니다. 다음은 "RKNN_toolkit2 v1.4.0"을 이용한 onnx -> rknn 모델 변환 소스입니다. # onnx to rknn converter (Python-3.8 tested) # date 2023-02-09 # author hbesthee@naver.com from argparse import ArgumentParser from rknn.api import RKNN DATASET = './dataset.txt' QUANTIZE_ON..

[Python] pytube로 영상 다운로드 시, 발생하는 'NoneType' object has no attribute 'span' 오류

문제점 및 증상 "pytube"로 영상 다운로드 시, 다음과 같은 오류가 발생하며 영상 다운로드가 실패하는 문제가 얼마전부터 발생하기 시작했습니다. YouTube('https://youtu.be/9bZkp7q19f0').streams.first() Traceback (most recent call last): File "", line 1, in YouTube('https://youtu.be/9bZkp7q19f0').streams.first() File "C:\Dev\Python\Python310\lib\site-packages\pytube\__main__.py", line 296, in streams return StreamQuery(self.fmt_streams) File "C:\Dev\Python\P..

[Python] 라즈베리파이 GPIO 제어하기 - 기초

개요 라즈베리파이에서 GPIO를 제어하는 방법을 알아보겠습니다. 패키지 설치 라즈베리파이에서 GPIO를 제어하기 위해서는 "RPi.GPIO" 패키지가 필요합니다. 다음과 같이 "RPi.GPIO" 패키지를 설치할 수 있습니다. $ pip install RPi.GPIO GPIO 제어 간단 출력 예제 다음은 GPIO를 이용한 간단한 출력 예제입니다. import time import RPi.GPIO as GPIO LED = 3 # LED 제어용 GPIO 핀 DELAY = 0.3 # GPIO를 BCM 칩 기준으로 GPIO.setmode(GPIO.BCM) # LED 를 위한 핀을 출력으로 설정 GPIO.setup(LED, GPIO.OUT) try: while True: # LED 켜기 GPIO.output(LED..

[Python] 엑셀 파일의 특정 영역의 자료들 수정하기

개요 이번 글에서는 엑셀 파일을 열어서 특정 영역의 자료들를 수정하는 방법을 알아보겠습니다. 기초적인 내용은 앞 글을 참고하시기 바랍니다. "새로운 엑셀파일을 만들고 데이터 입력하기":https://hbesthee.tistory.com/2242 "엑셀 파일을 열고, 배열 데이터 입력하기":https://hbesthee.tistory.com/2243 특정 영역에 대한 자료 입력 방법 아래 코드는 (B2 = 2, 2) ~ (C4 = 4, 3) 특정 영역의 데이터를 주어진 데이터로 수정하는 예제입니다. import openpyxl # 엑셀 파일 열기 workbook = openpyxl.load_workbook('example.xlsx') # 이전에 만든 시트 선택 sheet = workbook['create1..

[Python] 엑셀 파일을 열고, 배열 데이터 입력하기

개요 이번에는 지난 글 ([Python] 새로운 엑셀파일을 만들고 데이터 입력하기)에 이어 엑셀 파일을 열고 특정 위치에 배열 데이터를 입력하는 것에 대하여 알아 보겠습니다. 엑셀 파일 열기 엑셀 파일을 열기 위해서는 openpyxl.load_workbook() 함수를 이용합니다. from openpyxl import load_workbook # 엑셀 파일 열기 workbook = load_workbook('example.xlsx') 열어 놓은 엑셀에 새로운 시트를 만들려면, "create_sheet()" 함수를 이용합니다. new_sheet = workbook.create_sheet('create1') 배열 데이터 입력 방법 1차원 배열을 시트의 "append()" 함수를 이용하면, 손쉽게 입력할 수 ..

728x90