Python3関連のことを調べてみた

Python3関連のことを調べてみた

Pythonで『The MagPi』の全号を一括ダウンロードするスクリプト

「The MagPi」は、Raspberry Piに関する情報を提供するマガジンです。チュートリアル、プロジェクトのアイデア、最新情報などを掲載し、コーディングやロボティクス、DIYエレクトロニクスに興味のある人々にとって役立つ内容が満載です。

The MagPi” のPDFは公式サイトで無料でダウンロードできます。最新号からバックナンバーまで、Raspberry Piに関する様々な記事やプロジェクトが掲載されています。公式サイトを訪れて、直接ダウンロードしてください。

Link: https://magpi.raspberrypi.com/issues

“`python:download_magpi_all_issues.py
# 『The MagPi』雑誌の全号を一括ダウンロードするPythonスクリプト
import webbrowser
from time import sleep as wait

# 1から144までの範囲でループを実行
for i in range(1, 145):
# 号のダウンロードURLを生成
url = f”https://

元記事を表示

スマートリモコンをChatGPT(Function Calling)を使ってよりスマートにしよう!

# スマートリモコンをよりスマートに!?
 声から操作ができてしまうスマートリモコンですが、文脈から意図を認識するというところまでではないようです。そこで、今回はChatGPTのFunction Callingと呼ばれる機能を使って、人の意図をくみ取って、家電を操作してくれる装置を作ってみたいと思います。
 実際の処理の流れとしては、以下になります。
1. プロンプトをChatGPTのAPIへ渡し、GPTにどの家電をどのように操作するのか判断してもらう(今回)
2. ChatGPTの判断結果から、ラズパイが赤外線で家電を操作

 今回はプロンプトを入力して、特定のスクリプトをたたくところまでのポイントとなった部分を紹介します。実際のコードは、GitHubにあげています。(https://github.com/arumi123/homebridge/tree/develop)

また、結果だけ見たいという方は、実際に呼び出してみよう!まで進んでください。

# Function Callingとは
 人が入力した文字列(プロンプト)から、ChatGptが意図を読み取り必要な関数やAPIを

元記事を表示

EC2 amazon linux にPythonを入れてみよう 入門

AWS EC2 インスタンスに Python をインストールする方法について説明します。以下の手順に従ってください。

### Amazon Linux 2 の場合

1. **パッケージリストの更新**:
“`bash
sudo yum update -y
“`

2. **Python 3 のインストール**:
“`bash
sudo yum install python3 -y
“`

### Ubuntu の場合

1. **パッケージリストの更新**:
“`bash
sudo apt update
“`

2. **Python 3 のインストール**:
“`bash
sudo apt install python3 -y
“`

3. **pip のインストール**:
“`bash
sudo apt install python3-pip -y
“`

### Python と pip のバージョン確認

インストールが完了したら、以下のコマンドでバージョンを確認で

元記事を表示

obsws-pythonのテキスト編集で沼った話

## obsws-pythonとは
obsws-pythonとは、OBS StudioのWeb Socketを使って
プログラムから色々なOBS上の操作ができるライブラリです。

https://pypi.org/project/obsws-python/1.1.0/

…と言っても[当該ライブラリのGitHub](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md)を見てもいまいちわからなかった上に日本語の情報がかなり少なかったので非常に沼りました。
本記事では数ある機能の中でも主に**テキストソースの編集**にフォーカスして、私が確認できた内容を残そうと思います。

`obsws-python`は以下でインストール可能です。
“`bash
pip install obsws-python
“`

:::note info
結果だけ知りたい方はGitHubに概要とコードサンプルを載せているので[こちら](https://github.com/t4ned4/obsws-

元記事を表示

[自分用]Xで指定したテキストを含むハッシュタグ付き等の投稿を検索・取得する

# 細々した話

## Basicプランの課金タイミングについての注意

1ヶ月100ドルと書いてあったが、登録したらそこで「1ヶ月分」課金されるわけではなかった(2024年9月時点での報告)。

* 最初に1週間分課金された(日割り)。
* 1週間後に1ヶ月分課金された。

クレジットカードの締日と相談して経理系の手続きを行う場合は注意。

## 事前設定

APPを作ること。

必要な認証系の情報は、 「Apps」の個別アプリの「Keys and tokens」リンク(鍵マーク)で行けるページから作成・取得できる。
* API Key and Secret (Consumer Keysの下)
* Bearer Token(Authentication Tokensの下)
* Access Token and Secret (Authentication Tokensの下)

※ User authentication settingsはデータ取得のみなら設定不要かと思われる。

## Searchの注意点(Basicプラン)

https://developer.x.com/

元記事を表示

LinuxでPythonの仮想環境(venv)を作る方法

# 仮想環境(venv)とは
venvはPythonの仮想環境を作成する仕組みで、Pythonをインストールすると標準で利用できます。

用途としては、プロジェクト別にインストールしたいパッケージを分けるときです。使っていきましょう。

# Linuxでvenvを作成してvenv使用する
“`bash:terminal
$ python3.9 -m venv (venvディレクトリ名) # 仮想環境を作成する
“`
このコマンドでvenvの環境が(venvディレクトリ名)に作成されます。

“`bash:terminal
$ source (venvディレクトリ名)/bin/activate # 仮想環境に入る(有効化)する
“`
とsouceするとターミナルの先頭に括弧書きで使用している仮想環境の名前が表示されます。

“`bash:terminal
$ which python # pythonのpathを表示
(venvディレクトリのPATH)/bin/python
“`
と表示されていればOKです。

仮想環境を抜ける(無効化)するにはdeactivateコマン

元記事を表示

はじめてのPytest

### テストコードをさくっと学んだので自分用のメモを残す


### Documents
[Pytest](“https://docs.pytest.org/en/stable/getting-started.html#get-started”)

[GitHub](“https://github.com/pytest-dev/pytest/”)


### Installation
“`
pip install pytest
“`

### まずは関数をテストする。

src >> testするファイルを格納

“`
# src/code.py
def sum_numbers(a, b):
return a + b
“`

tests >> testcodeを格納するフォルダ
from folder_name import fileName
“`
# tests/test_1.py
from src import code

def test_1():
result = code.sum_numbers(1, 2)

元記事を表示

めも(WIN10)

### SCOOP を使ってPython をInstallする

“`
#Power Shell
scoop install python
“`

“`
python3 -V
#Python 3.12.2
“`

“`
#Power Shell
mkdir Pyenv
“`

“`
# python -m venv


python -m venv C:\Users\UserName\Pyenv
“`

#### Script直下にActivate.ps1がある事を確認してActivate.ps1を実行する(仮想環境が有効になる)
“`
Scripts\activate.ps1
“`

“`
CREATE TABLE shuzen_list (
id TEXT,
工事No TEXT,
工事内容 TEXT,
建物名 TEXT,
場所 TEXT,
受付日 TEXT,
工事完了日 TEXT,
売価予定金額 INTEGER,
売価合計 INTEGER,

元記事を表示

Python3 エンジニア認定基礎試験 合格体験記

# 初めに
Python3 エンジニア認定基礎試験に受かりました。
前回のAWS SAAを受験してから大体10日ほどでの合格になります。
受験経緯としてはPythonを触れてみたいなと思ったときに、せっかくなら資格でも取ってみようかなと思ったのがきっかけになります。ついでに資格手当ももらえるからですね。資格手当はとても偉大です。

# 試験の概要
受験料金:1万円(税別) 学割5千円(税別)
問題数:40問(すべて選択問題)
合格ライン:正答率70%
試験の詳細は下記になります。
[Python3エンジニア認定基礎試験](https://www.pythonic-exam.com/exam)

# 使用教材
* ExamApp
→知識の確認に使いました。初級、中級、上級とありますが中級まででも合格自体はできるかも。記録を見たら各5回ずつくらい解いてました。

* DIVE INTO CODE
→1週間無料体験があったので使いました。無料期間でやりきった感じがあったので無料期間中に解約しました。ゴメンネ

* 公式ドキュメント

RaspberryPiを使って入退室管理システム作ってみた!

# 概要
私が所属している研究室は人が少ない!
これではきっと研究も余り進んでいないはずだ!!(偏見)
ということで、何かと便利な入退室管理システムを作ってみたら以外と面白かったのでそれについて触れていきたいと思います。

# 環境
– Ubuntu 22.04 LTS
– Raspberry Pi 4 Model B
– RC-S380/S
– Python 3.10.12

# 準備
1. NFC/FeliCaリーダーをUSBでRasPiに接続
1. 端末で`lsusb`を打ち込んで下記が出力されれば認識完了!

“`
Bus 001 Device 003: ID 054c:06c1 Sony Corp. RC-S380/S
“`

1. nfcpyをインストール

“`
$ pip install -U nfcpy
“`

## 学生証を中身を見てみる
以下が学生証の中身を見るコードになります。
“`python:dump.py
import nfc

def on_connect(tag):
print(tag)

Streamlitの環境でPython3勉強の記録

StreamlitのPython3を勉強して自分用としてメモを残す

1. 環境設定
Python3 と Streamlit の環境を整える手順を説明する。
今回のOSはWindows11とする。

* Python3のインストール(未インストールの場合)
・リンク:https://www.python.org/downloads/
・もしくは、Windows11の既存アプリ:Mincrosoft storeでPython3ダウンロード
* 環境変数を設定する。
・リンクからダウンロードした場合は、環境変数に設定する必要がある。
・Mincrosoft storeでダウンロードした場合は省く
* コマンドプロンプトを起動しPython3のバージョンを確認
“`
python -V
//Python 3.1x.xが出れば環境設定完了
“`
* 必要なパッケージのインストール
以下のコマンドを実行する。
“`

データ拡張

## はじめに
前回の記事で、事前学習モデルについてある程度の動きを確認することができました。これからAIに教師データを学習させて画像認識を体感してみたいと思います。モデルも事前学習モデルではなく、独自でモデルを作成してみたいと思います。
具体的にやりたいことはお酒の画像をAIに学習させて、それがどのジャンルのお酒なのかを判別するプログラムを作りたいと思っています。AIにデータ学習させるため、お酒データ(教師データ)を大量に準備する必要があるのですが、用意できたのは7つのジャンルに分類されたお酒画像が50枚ずつで学習データが全く足りません。
そこでまずはデータ拡張を行い、データを水増ししようと思います。

## データ拡張方法
データ拡張方法としてはいろいろな方法があると思いますが、今回は以下の方法を使います。
* 画像の反転
![1719312498021_trans.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750854/d51cfaea-9268-55cb-58e4-793954d9067d

A/Bテストで必要なサンプル数を見積もる方法【帰無仮説、検出力、有意水準】

## はじめに

新しい施策が効果的かどうか知りたいとする。
オンラインでのA/Bテストは最も効果的な方法の一つだ。

どのような施策でテストを行うか、また得られた結果をどのように分析するかは当然大事である。
そしてつい軽視されがちであるが、実験前に**必要なサンプル数を見積もる**のも同じくらい大事だ。
サンプル数が少なすぎると本来見たい効果が見れないかもしれない。
一方で工数やコスト、リスクの観点からサンプル数をとにかく増やせばいいというものではない。

ここではコンバージョンするかしないか?に絞ったよくあるケースについて、必要なサンプル数を見積もる方法について考えてみよう

# おおよその計算式

有意水準5%、検出力80%の場合、A/Bテストに必要なサンプル数nは以下の式で見積もることができる。
(有意水準、検出力の説明については後述)

“`math
\begin{aligned}
n&\sim\frac{8({\sigma_T}^2 + {\sigma_C}^2)}{\delta^2}\\
&=\frac{16\sigma^2}{\delta^2}\\
\end{al

FAST API で使うコマンド

## 自分用メモ

### サーバ起動
“`
uvicorn blog.main:app –reload
“`

### ライブラリ バックアップ
“`
pip freeze > requirements.txt
“`

### Import sort
“`
isort .
“`

### 仮想環境 有効化
“`
source Scripts/activate
“`
### 仮想環境 無効化
“`
deactivate
“`

複数のサイズのアイコンを一括で作成

“`python
from PIL import Image
import sys
import os

argv = sys.argv

def remove_ext(fpath):
d = os.path.dirname(fpath)
fname = os.path.basename(fpath)
ff, ext = os.path.splitext(fname)
prefix = os.path.join(d, ff)
return prefix

def resize_image(input_path):
# 変換するサイズ
sizes = [48, 72, 96, 144, 192]

prefix = remove_ext(input_path)

# 入力画像を開く
with Image.open(input_path) as img:
# 幅と高さが同じであることを確認
if img.width != img.height:

Django 管理ページにログインするまでの手順

## はじめに
Djangoをインストールしてから、管理ページにログインするまでの手順をまとめました。

## 誰のために?
これはDjangoのチュートリアルを終えて、新しく開発を始めたいけど、最初の手順を思い出すのが面倒な人のために書かれています。(requirements.txtの部分に関しては、実際のチュートリアルでは触れられていません)

まだチュートリアルを終えていない人はこちらで一通りDjangoについて学習することをお勧めします。

https://docs.djangoproject.com/ja/5.1/intro/tutorial01/

## 開発環境
Ubuntu 22.04
Python 3.12.5
エディタ VSCode

Ubuntu 22.04には標準でPythonがプリインストールされています。自分の使いたいバージョンを使いたい場合は以下の記事を参考にしてください。

https://qiita.com/murakami77/items/b612734ff209cbb22afb

::: note warn
この場合、標準でインストールされている

フォネティックコードを調べるAPIを作る

こんにちは。Udonです。

最近、APIを自作してみようと考えていて、Flaskを使ってこれを実現することにしてみました。

題材は何にしようかな、ということで、覚えきれていなかったフォネティックコードを使うことにしました。

[NATOフォネティックコード – Wikipedia](https://ja.wikipedia.org/wiki/NATO%E3%83%95%E3%82%A9%E3%83%8D%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B3%E3%83%BC%E3%83%89)

## APIの機能

フォネティックコードは、AからZまでのアルファベット各種に対応しています。

というわけで、クエリとしてアルファベットを渡すことで、それに対応するフォネティックコード及びその読み方をjson形式で返す、といった働きのものを作成することとしました。

## 作成手順

### 環境

APIの実現のためには、Flaskを使うことにしました。理由としては、自分がPythonに

pythonはファイルのために、再帰処理を書かなくていいらしい

(この記事は、眠たい私がハイになりつつ書いたため、テンションがおかしいですがお許しください)

このディレクトリの中のファイル、権限とかを全部書き換えたいなあ…
でも再帰処理とかめんどいな〜
とか思っているそこの君! os.walkを知っているかい!
# os.walkとは
ディレクトリツリーをたどって、すべてのフォルダ、ファイルをなぞることを、for文だけで実装できるようにしてくれる素晴らしいメソッド

# os.walkの引数、戻り値
### 引数
“`top“`
最初のディレクトリ、一番最初になぞることとなる
ここから下のディレクトリ、ファイルをなぞることになる

### 戻り値
“`dirpath“`、“`dirnames“`、“`filenames“`
それぞれ「現在のディレクトリ(topからのパス)」「サブディレクトリ(名前だけ)」「直下ファイル(名前だけ)」となっている

# os.walkの使い方

まず、このようなディレクトリ構造があるとき
“`bash
$tree ./test
./test
├── test1
│ ├── test4

FlaskをDocker上で動かしたときにアクセスができない問題

Dockerを用いて、Flaskで作ったアプリを自宅のサーバ上で動かし、常駐させようと考えたが、その際にハマったことについてまとめておく。

## 環境

– Ubuntu 24.04
– Docker 24.0.5
– Flask 3.0.0

## 問題

とりあえず、以下のようなDocker関連のファイルを作成した。

“`Dockerfile
# Dockerfile
FROM python:3.10.5-alpine3.16
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install –no-cache-dir -r requirements.txt
“`

“`yaml
# docker-compose.yml
version: ‘3.8’
services:
app:
build: .
ports:
– “5000:5000”
volumes:
– ./app:/u

VPSをAPIサーバにして、Flutterアプリを作った話

# 概要
以前からVPSを契約していて活用していなかったので、今回は、VPSをAPIサーバとして、Flutterアプリを作りました。(アプリの内容は、chatgptで作成したナンバーズ3の当選番号予測プログラムであり、正確性が保証されていないためメインでは触れません。)
システム全体の構成から、触れたいところのみ詳細に書こうと思います。

### システム全体の構成
– クライアント:Flutter
– APIサーバ:ubuntu
– DB:Neon(Postgresql)
– API:Python3(FastAPI)
一応全体の構成図も載せておきます。
![システム構成図](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657014/37afcb83-0ecf-4e53-c178-a9fdc5a211eb.png)

### DBについて
APIサーバについては契約していましたが、DBをどうしようと無料のものを探していたところ、[Neon](https://neon.tech)を見つけました。最初はHeroku