반응형 프로그래밍207 [Python] 문장(String)에서 리스트 단어 찾기 find 함수로도 찾을수 있지만 뭐... 어쨋건... 리스트로 단어들을 나열하고 임의의 문자열에 포함된 리스트들의 단어들을 출력하는 방법이다. my_find = ['hello', 'hi', 'sorry', 'my', 'mine', 'a', 'b', 'c', 'd', 'e'] my_str = "hello my friend" res = list(v for v in my_find if(v in my_str)) print(res) 리스트로 단어를 나열하고 임의의 문자열에 하나이상 포함되어 있나 출력하는 방법이다. my_find = ['a', 'b', 'c', 'd', 'e'] my_str = "hello" res = any(v for v in my_find if(v in my_str)) print(res) # .. 프로그래밍/Python 2022. 12. 8. [Python] 딕셔너리 리스트 특정 속성이 최대값/최소값 불러오기 딕셔너리(JSON)을 리스트로 받아올 때 리스트 중 딕셔너리의 임의 속성값이 가장 큰 것을 가져오고 싶을 때가 있다. index는 첫번째, 두번째 등 순번을 매기는 속성, value는 실제 값이라고 가정을 하고 value가 최대값/최소값인 딕셔너리를 뽑아오는 방법이다. temp =[{'index':99,'value':1},{'index':98,'value':2},{'index':97, 'value':3}] res = max(temp, key=lambda v: v['value']) print(res) value가 가장 높은 {index:97, value:3} 딕셔너리를 가져온다. 프로그래밍/Python 2022. 12. 8. [Python] Teachable Machine 이미지 프로젝트(Tensorflow Lite) 이 글은 Teachable Machine에서 이미지 분류를 하고 Tensorflow Lite로 모델을 실행하는 방법이다. 환경은 Raspberry Pi 3B Buster(앞으로의 프로젝트는 Buster를 선호한다) Python3.7 1. TensorFlow Lite 설치 아래의 사이트에서 본인의 os에 맞는 버전을 설치한다. 라즈베리 buster라면 보통 arm32/python3.7이다. https://www.tensorflow.org/lite/guide/python#install_tensorflow_lite_for_python 2. 예제 파일&모델 다운로드 git clone https://github.com/tensorflow/examples.git --depth 1 cd lite/examples/so.. 프로그래밍/Python 2022. 12. 7. nodejs&nginx 연동하기 처음에는 파이썬 flask 사용하려다 nodejs로 갈아탐 ... nodejs만 사용하면 오류가 존재한다고 nginx를 거쳐서 들어오는 것을 추천한다고 한다. 사실 개인적으로 사용할 것이라 굳이 nginx를 사용하지 않아도 되지만... 익숙해질겸 사용해본다. 환경은 라즈베리파이3 buster이다. 1. 필요 패키지 설치 1-1. nginx 설치 sudo apt-get install nginx 1-2. nodejs 설치 sudo apt-get install nodejs node -v로 설치 확인 1-3. npm 설치 nodejs를 설치하면 npm도 같이설치된다길래 그런가보다 했는데 설치가 안됨. 따로 설치 sudo apt-get install npm 1-4. express 설치 참고로 나의 경로는 /hom.. 프로그래밍/NodeJS 2022. 12. 4. [라즈베리파이] 유저 추가하기 게스트용 ftp 접속을 위한 유저를 추가하려 한다. sudo 권한은 추가하지 않을 거지만 방법은 일단 추가한다. [유저 추가] sudo adduser -m guest1 -m 옵션은 guest1의 홈 디렉터리를 만든다. ftp root를 /my_disk에 설정해서 홈 디렉터리가 필요없을 줄 알았는데 필요한 것 같다 홈디렉토리가 없으면 filezilla에서 접속이 안된다. 혹시나 -m 명령어를 사용하지 않았다면 소유권을 변경하자. # sudo chown [호스트].[계정] /home/[계정] sudo chown park.guest1 /home/guest1 [비밀번호 추가] #sudo passwd [계정이름] sudo passwd guest1 [sudo 권한 추가] 먼저 편집기로 /etc/sudoers를 연다.. 프로그래밍/Raspberry PI 2022. 12. 4. [라즈베리파이] ftp 서버 설정하기 1. 먼저 apt 업데이트 & 패키지 업그레이드 sudo apt-get update sudo apt-get upgrade 2. vsftpd 설치 sudo apt-get install vsftpd 3. vsftpd 설정 sudo vim /etc/vsftpd.conf 설치시 생성된 파일에 주석으로 간단한 설명들이 적혀있다. 나의 경우에는 아래의 옵션을 추가 local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list allow_writeable_chroot utf8_filesystem=YES local_root=/my_disk .. 프로그래밍/Raspberry PI 2022. 12. 4. [라즈베리파이] 외장 하드디스크 마운트하기 1. 외장 하드디스크검색 sudo blkid 나의 경우 /dev/sda1에 잡혀있고 포맷형식은 ext4이다. sda1이란 디스크 이름으로 나와 다를 수 있다. 각자의 디스크 이름을 기억해둔다. 리눅스계열의 경우 ext4로 포맷하는 것을 추천한다. UUID는 자동 마운트 설정할 때 필요하니 기억해둘 것 2. 외장 하드디스크 마운트 sudo mkdir /my_disk sudo mount /dev/sda1 /my_disk 마운트한다 디스크이름을 ~경로에. ls명령어로 확인하면 이전에 있던 파일들이 그대로 존재한다. 3. 자동 마운트 라즈베리를 종료하면 외장하드디스크도 언마운트된다. 다시 부팅을 하면 다시 마운트해줘야하는데 귀찮으니 자동 마운트 설정을 한다. sudo vim /etc/fstab UUID=[디스크.. 프로그래밍/Raspberry PI 2022. 11. 30. [라즈베리파이] 미러링&미러사이트 변경 라즈베리를 처음 셋팅하면 제일 처음에 해야할 것은 미러사이트 교체이다. install이 안되거나 너무 느리거나 할 때가 있는데 대한민국 주소의 사이트로 변경해주면 빠르다. 나의 경우는 카이스트 미러사이트를 사용한다. 먼저 자신이 사용하는 편집기를 이용하여 sources.list를 open sudo vi /etc/apt/sources.list 그 후 지정되어있는 주소를 지우고 (나의 경우는 주석) 본인이 원하는 주소로 입력 #deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi deb http://ftp.kaist.ac.kr/raspbian/raspbian/ buster main contrib non-free rpi 모.. 프로그래밍/Raspberry PI 2022. 11. 25. [라즈베리파이] OS 이미지 굽기 라즈베리파이 이미지를 굽는방법은 여러가지가 있다. 1. Win32 Disk Imager 또는 Eatcher같은 프로그램으로 .img 파일을 다운받아 직접 만드는 방법, 2. Raspberry Pi Imager를 다운받고 굽는 방법. 차이가 있다면 1번 방법은 백업도 가능한데 2번방법은 백업이 없는 것 같다. 1번은 범용이라 생각하면 되고 2번은 라즈베리파이 공식 홈페이지에서 추천하는 방법인데 UI가 간단하고 이쁘며 호스트, 무선랜, 국가 지정등을 할 수 있다. 그렇다고 라즈베리만 되는 것이 아니고 .img 파일을 직접 선택할 수도 있다. 2번 Raspberry Pi Imager를 이용하여 만들어본다. 1. Raspberry Pi Imager 다운로드 아래의 링크에서 현재 OS에 맞게 Imager를 다운받.. 프로그래밍/Raspberry PI 2022. 11. 25. [Ubuntu/Debian] apt 명령어 모음 먼저 apt란 Advanced Package Tool로 패키지 관리 도구이다. (apt = apt-get+apt-cache + dpkg) 그래서 apt와 apt-get차이는 apt 구문은 아래와 같다 apt command apt [options] command apt [options] command pkg1 apt [options] command pkg1 pkg2 명령어 설명 apt update apt 정보 업데이트 apt upgrade 패키지 업그레이드(패키지 제거X) apt full-upgrade 패키지 업그레이드(필요가 없는 패키지 제거) apt list 패키지 리스트 --installed, --upgradeable, --all-versions 보통 grep명령어와 함께 사용 apt search 패.. 프로그래밍/Linux 2022. 11. 24. [라즈베리파이] Teachable Machine 오디오 프로젝트(feat. 오프라인) 보통 라즈베리파이에서 음성인식을 한다 하면 Google Cloud 또는 Kakao AI를 사용하는데 단점은 인터넷이 연결되어 있어야 하고 상황에 따라 요금이 부과될 수 있다. 또한 핑거스냅, 박수소리 등 자연어가 아닌 음성은 구분할 수 없다. 이 역할은 Teachable Machine에서 sound 계열 수행이 가능하다. Teachable Machine에서 이미지 분류는 Python코드가 존재하여서 쉽게 따라 할 수 있다. 그러나 오디오 프로젝트에는 Python예제가 없다. 처음에는 안 되는 줄 알았는데 생각해보면 Tensorflow Lite로 실행하면 되는 것이다. (정식으로 공부하지 않아서 아이디어가 바로바로 안 떠오른다...) 직접 데이터를 만들고 해도 되겠지만, Teachable Machine의 .. 프로그래밍/Raspberry PI 2022. 11. 22. [javascript] 창(div) 분할 사이즈 조절 좌측 사이드 네비게이션이 있을 때 창 조절이 가능한 사이트들이 있는데 구현할 일이 있어서 구현해본다. 사실 resize 기능이 있지만 조절창이 우측 하단에 있어 웹에서 사용하긴 좀 어려워 보인다. 어쨋든 원리는 아래와 같다. 1. 마우스를 클릭한 순간 마우스의 위치값을 기억한다. 2. 마우스를 움직이면 1번에서의 위치값에 대한 상대좌표를 저장한다. 3. 마우스를 떼는 순간 이동한 값에 따라 창분할을 한다. (아래 코드는 %기준) is_mouse_down과 is_mouse_move는 마우스를 올리는 순간(엄청 빠르게) 다시 클릭하면 계속 사이즈가 바뀌는 것을 대비해서 작성을 했는데 빈도만 줄었을 뿐 진짜 아주 가끔 같은 현상이 일어난다... 창의 너비를 줄이면 발생은 사실상 불가능하지 않을까 See the.. 프로그래밍 2022. 11. 22. 이전 1 ··· 5 6 7 8 9 10 11 ··· 18 다음 반응형