- 1. pythonのwebdriverを使っていたところOSErrorが出た件
- 2. 「mapitool.exe」(ruby-msg)を代替するPython版mapitool(暫定)の作成
- 3. MinecraftのDataPackのテンプレートをPythonで構築してみる
- 4. 動体検知監視カメラ
- 5. CNNで画像分類をやってみました
- 6. 【Python】watchdogでファイルの変更を検知して非同期で処理する方法
- 7. matplotlibを用いたグラフ描写にてTimes New Romanのフォントを利用する方法
- 8. paiza×Qiitaコラボキャンペーンなので、恥を忍んで投稿します!
- 9. ポテトチップスの方程式
- 10. httpbinをk8s環境にデプロイする
- 11. 【合格体験記】Python 3 エンジニア認定データ分析試験
- 12. 自分がよく個人開発で使うターミナルコマンドまとめ(フレームワークなど)
- 13. MySQLコンテナにコンテナ間接続できない時
- 14. 【Python】Seleniumで読み込み待ちができない場合の対処方法
- 15. Fizz Buzz(paizaランク C 相当):Python3解答例
- 16. 30秒で読めるTensorflowのgpuインストール方法
- 17. 【paizaランク C 相当】みかんの仕分けをやってみた!:Python3解答例
- 18. Openpyxl: Border、値、スタイル、コラム幅のコピー
- 19. Aランク解きたい人超必見!!Aランク問題全てを考察から解法まで超丁寧に解説
- 20. 足し算 (paizaランク D 相当) Python解答例
pythonのwebdriverを使っていたところOSErrorが出た件
# エラー内容
毎日のようにbatファイルからpythonをタスクスケジューラ実行しているのですが、先日いきなりこのようなログが返ってきました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480692/f368ee41-e555-5b28-7520-bc6df85853ed.png)
OSError:[WinError 193] %1 は有効なWin32アプリケーションではありません。
# 対処方法
Webdriverで困ったときはだいたいツイッターで検索して対処法を探すのですが、
今回もツイッターで既に対応方法を書いている方がいらっしゃいました。https://x.com/alt_ego_project/status/1817923781748535785
最新版のアップデート
pip install webdriver_manager –upgradeよく分かりませんが、こちらを実行すると問題なくpythonがまた実行できるようになりました。
私ももっとwe
「mapitool.exe」(ruby-msg)を代替するPython版mapitool(暫定)の作成
# 1. きっかけ
こちらの[『IIJ セキュアMX』Windows環境で動作する「SMX迷惑メール誤判定報告ツール」を作成しておきました](https://qiita.com/hiro-matsumoto/items/d62f09cf46ded2621a44)にて、
OutlookのMSG形式メールをeml形式に変換するツールとして、
rubyで作成された「mapitool-1.5.0-mswin32-stand_alone.zip」(ruby-msg)を使っていました。(cles::blog 平常心是道 様)[.msg を .eml に変換する (ruby-msg編)](https://blog.cles.jp/item/6664)
(Githubリポジトリ) https://github.com/aquasync/ruby-msg
(Google Cide Archive)https://code.google.com/archive/p/ruby-msg(Qiita)[Outlook のメールデータ:インポート・エクスポート](https://qiita.com/ke
MinecraftのDataPackのテンプレートをPythonで構築してみる
## はじめに
Minecraftのデータパック製作で関数を作ってささっと試したいとき、それにいちいち手間をかけないで爆速でデータパックの準備を済ませたいと思ったことありますね?
今回はPyhtonでMinecraftのデータパックの土台を自動構築していこうと思います。## 環境
Python: 3.12.5Minecraft: 1.21
OS: Windows 11
## やること
Pythonをインストールしてない人はインストールしちゃってください。
https://qiita.com/icoxfog417/items/e8f97a6acad07903b5b0
Pythonをインストールしている人だったら、下のコードをデータパックを生成したいフォルダーに下のPythonをとりあえず貼ってください。
“`python:data_pack_gen.py
import os
import jsonpack_name = input(“pass the pack name:”)
os.makedirs(f”./{pack_name}/data/minecraft/”)
動体検知監視カメラ
# はじめに
今回、自作で動体検知のできる監視カメラを作成しました。本記事では、開発にあたって設定した要件をまとめてご紹介します。
# 1.テーマ
「自身で開発から運用までを行い監視カメラを作る」という目標のもと開発した、動体検知で人間のみを検知し、discord(メッセージアプリ)に検知時の画像を送信するアプリケーションです。# 2.課題の定義
## 解決すべき課題
実家に空き巣が入り、急遽、市販の監視カメラを設置しました。しかし、運用するにあたって、いくつかの課題を発見するに至りました。
#### 2.1 可用性の問題
– 上手く動体検知しないことがある
– デバイスに送信される画像がコマ送りになっており、前後の映像が取得できない
– 画質が悪く、正確な情報を得られない
#### 2.2 ユーザビリティの問題
– 専用アプリが使いにくく、独自の設定をユーザ側が手動で行う必要がある
– アプリの通知が届かない時があり、検知した場合に即座の対応が難しい## 3.解決方法
フルHDのwebカメラを使用し、Discordを介して画像を送受信することで、画質の問題・通知の不安定
CNNで画像分類をやってみました
# AIってなんだろう?
ふと思い立ち、調べながらつくってみました。# AIの分類
だいたいこんな感じの分類。
これはGoogleの画像検索でも出てくると思います。機械学習:教師あり学習、教師無し学習、強化学習
深層学習:多層のニューラルネットワークを使用してデータから特徴を自動的に学習します。# 謝意
今回は作成にあたり、フリーなデータを使わせていただきました。
https://www.kaggle.com/datasets/vishalsubbiah/pokemon-images-and-typesポケモン809種の画像が120×120の形で保存されています。
VGG16を使用するにあたり、224×2224に加工し、データ拡張をしています。pokemon-apiを使おうか検討しましたが、
最後に公開できないことを知り、諦めました。# 今回試してみた内容
今回はWEBアプリで画像を投稿したら、その画像がどの様な分類になるか?
というものを作成したいと思います。教師あり学習の中にある「分類(カテゴリ分け)」と「回帰(予測)」のうちの
「分類(カテゴリ分け)」
【Python】watchdogでファイルの変更を検知して非同期で処理する方法
ファイルの変更を検知して、サーバーにアップロードするような処理を書きたかったので調べました。
ファイルの変更検知は [gorakhargosh/watchdog | Github](https://github.com/gorakhargosh/watchdog) で簡単にできたのですが、アップロード処理を非同期で行う実装に手間取ったので残しておきます。“`python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler, FileSystemEvent
from concurrent.futures import ThreadPoolExecutordef upload_file(file_path):
print(f” [upload_file] start. (file={file_path})”)
time.sleep(5)
print(f” [upload_file] end. (fi
matplotlibを用いたグラフ描写にてTimes New Romanのフォントを利用する方法
# はじめに
OS、実行環境は以下の通りです。
“`
Ubuntu 22.04
virtualenv + python 3.9
“`
タイトルにあるように、matplotlibにてグラフを描写する際、グラフ内で用いる凡例や軸名にTimes New Romanを用いる方法を説明します。以下、自身の環境におけるデフォルトのフォントです。
“`
>>>import matplotlib as plt
>>>plt.rcParams[“font.family”]
[‘sans-serif’]
“`# Times New Romanフォントのインストール
まず、システムにTimes New Romanフォントがインストールされていることを確認します。以下のコマンドを使用して、Microsoftのコアフォントをインストールします。
“`
sudo apt update
sudo apt install ttf-mscorefonts-installer
“`# フォントファイルを仮想環境に設定
Times New Romanフォントファイル(Times_New_Roman.tt
paiza×Qiitaコラボキャンペーンなので、恥を忍んで投稿します!
# はじめに
paiza×Qiitaコラボキャンペーン ということ、過去に一度練習したことがあるランクB問題ですが、理解度の確認を兼ねて再度実施しました。
不適切な部分について、ご指摘いただけるとありがたいです。https://paiza.jp/works/mondai/b_rank_skillcheck_sample/long-table
# 私の回答例
“`python
# coding: utf-8N, M =map(int,input().split())
value =[[int(x) for x in input().split()] for _ in range(M)]seat_availability = [True] * N #各シートが着席できるかどうか
guests_num = 0 #着席したお客の総数for m in range(M):
entering_num = value[m][0] #入店したお客の人数
seat_num = value[m][1] – 1 #着席する最初のシート番号#入店
ポテトチップスの方程式
# はじめに
ポテトチップス(以下ポテチ)は、面白い形をしている。それは、上から見ると楕円形であり、横からだと双曲線に見える。そこで、今回はそのような摩訶不思議な形をしているポテチを3次元的にモデル化して以下のようなグラフにしてみることを目的とする。
![potechi_wire.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/78cfab14-4a3a-0b25-1fea-c5931fdde274.png)# ポテチの方程式
早速だが、上記のようなポテチを描くための方程式は以下のように表すことができる。“`math
\begin{equation}
\left\{ \,
\begin{aligned}
& \frac{x^2}{a^2}+\frac{y^2}{b^2}<1 \\ & z = \frac{x^2}{a^2}-\frac{y^2}{b^2} \\ \end{aligned} \right. \end{equation} ``` た
httpbinをk8s環境にデプロイする
# はじめに
[httpbin.org](https://httpbin.org/)はHTTPクライアントをテストするために重宝されているWebサイトです。
頻繁にテストするのはネットワーク資源的な意味合いで無駄だなと感じたので手元の環境にデプロイしました。
ついでに他の人達も利用できるようにURL Prefixを変更できるように改造してcontext-rootを変更可能なアプリケーションにしつつ、パッケージを最新版にして動かしてみました。
オリジナルはコンテナも配布されていますが、だいたい6年ぐらい前でgithubの更新も止っていて、Python3.6ベースになっています。
オリジナルを引き継いでPyplに登録されているバージョンもありますが、今回はオリジナルをforkしています。
## 成果物
* [https://github.com/YasuhiroABE/httpbin](https://github.com/YasuhiroABE/httpbin)
* [https://hub.docker.com/r/yasuhiroabe/my-httpbin/tags]
【合格体験記】Python 3 エンジニア認定データ分析試験
## はじめに
ここ最近のお話ではないのですが、Python 3 エンジニア認定データ分析試験の資格を取得しています。
個人的にとっかかりやすい資格で、使用した教材が非常によかったので共有しようと思います。## Python 3 エンジニア認定データ分析試験とは
概要は以下となります。:::note warn
記事投稿時の情報となり、内容が変更される可能性がありますので、受験される際はご自身でもお調べいただくことをおすすめいたします。
:::| 内容 | 詳細 |
| —- | —- |
| 主催 | 一般社団法人Pythonエンジニア育成推進協会 |
| 試験内容 | ・Pythonのライブラリ (NumPy, pandas, Matplotlib, scikit-learn) を中心に出題
・Pythonのデータ分析、機械学習や、それらに関係する数学の基礎知識も問われる |
| 試験時間 | 60分 |
| 試験形式 | 選択式 |
| 問題数 | 40問 |
| 合格ライン | 70%(28問以上の正解で合格) |
| 受験料金 | 一般: 11,000
自分がよく個人開発で使うターミナルコマンドまとめ(フレームワークなど)
## はじめに
初めましての人もそうでない人もこんにちは!
今回は自分がよく使うターミナルコマンドをまとめたいと思います!皆さんは個人開発をよくしますか?
自分はコミュ障なのでなかなかチーム開発の機会なんてほとんどありませんまぁ自分がコミュ障なのは置いておいて個人開発する時って大抵Reactを使うためにnpx・・・と長いコマンドを使ったりしてませんか?
そんな長いコマンドを毎回のように入力することが大変面倒でChatGPTとかに毎回教えてもらっています!
コマンド用のテキストファイルを作成しましたが毎回のようにローカルファイルの海に漂っています・・・
なので今回は主に自分用という部分が大きいですが、皆さんにも共有できたらと思いこの記事を作成しました!
## React + TypeScript
“`
npx create-react-app frontend –template typescript
cd frontend
npm start
“`## venv + Python
### MacOS/Linuxの場合
“`
python -m venv ve
MySQLコンテナにコンテナ間接続できない時
## 問題
Error connecting to MySQL: (2003, “Can’t connect to MySQL server on ‘db_server’ ([Errno 111] Connection refused)”)
docker環境に上記のエラーが出てしまってコンテナ間でデータベースのテストができなかった
## 結論
色々 docker-compose.yml を操作して頑張っていましたが、結論としては
「DBコンテナが立ち上がる前に、別コンテナがアクセスしようとしてエラーとなって落ちていること」が原因でした。以下のテストコードで接続が成功するかを試してコンテナ間の問題ではないことをチェックしてみてください。5回のリトライ試行を導入したコードになります。
“`python
import time
import pymysql
from cryptography.fernet import Fernetretries = 5 # Number of retry attempts
while retries > 0:
tr
【Python】Seleniumで読み込み待ちができない場合の対処方法
# はじめに
ページを読み込み終わる前に、後続の処理を実行してしまい、処理が失敗してしまう事象が発生した。
## 環境
Python 3.12.4
Selenium 4.23.1
Windows 10 22H2
# 起きた問題
ページの読み込みが終わる前に、後続の処理を実行してしまい、処理が失敗してしまう事象が発生した。
サンプルコードは、ログインを自動化する処理のコードである。
サンプルコードでは、ログインID入力欄、パスワード入力欄、ログインボタンが読み込まれる前に、ログインID・パスワードを入力し、ログインボタンを押下する処理が発生する。
## サンプルコード
“` python:auto_login.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_condition
Fizz Buzz(paizaランク C 相当):Python3解答例
## 問題
– 整数 N が入力として与えられます。
1からNまでの整数を1から順に表示してください。– ただし、表示しようとしている数値が、
1. 3の倍数かつ5の倍数のときには、”Fizz Buzz”
2. 3の倍数のときには、”Fizz”
3. 5の倍数のときには、”Buzz”を数値の代わりに表示してください。
“`diff_python
N = int(input())for i in range(1, N + 1):
#3の倍数かつ5の倍数(15の倍数)のとき
if i % 3 == i % 5 == 0:
print(“Fizz Buzz”)#3の倍数のときには、”Fizz”
elif i % 3 == 0:
print(“Fizz”)#5の倍数のときには、”Buzz”
elif i % 5 == 0:
print(“Buzz”)#3の倍数、5の倍数、15の倍数以外のときには、数字を出力
else:
30秒で読めるTensorflowのgpuインストール方法
# 記事のターゲット層
ネットに散乱するインストール手順を試して失敗した人向け(CUDA、cudnnのインストールを行った)# 要は
https://www.tensorflow.org/install/pip英語版のインストール手順見たほうがいい(日本語版は色々古くて大変)
【paizaランク C 相当】みかんの仕分けをやってみた!:Python3解答例
## 問題: みかんを重さごとに仕分ける
### 入力:
仕分ける重さの区切りを表す整数 N
みかんの個数を表す整数 M
各みかんの重さ w_1 から w_M:::note info
例えば N = 10 の時、10 g, 20 g, 30 g … のように仕分けられます。そして、そのみかんの重さが一番近い数の重さに仕分けられます。
重さが一番近い箱が複数ある場合、数が大きい方の箱に仕分けられます。
– 24 g のみかんはより値の近い 20 g と書かれた箱に仕分けられます。
– 35 g のみかんは 30 g, 40 g の箱と差が同じです。この場合は数の大きい方の 40 g の箱へ仕分けてください。
– 0g に仕分けられることはないので、一番小さい重さに仕分けてください。
:::inputで複数の値を取得する際に、複数の値を取得する方法をまとめます。
指定された数の文字列を格納します。“` diff_python
# 入力された文字列を分割してNとMを取得します。
N, M = input().split()
“`
stripメソッドとは
strip
Openpyxl: Border、値、スタイル、コラム幅のコピー
こちらのプログラムを改造して、値、スタイル、コラム幅もコピーするようにしました。
[Openpyxl: Border のコピー](https://qiita.com/ekzemplaro/items/ba414f899f3324b4ddf5)## プログラム
“`py:copy_borders_value.py
#! /usr/bin/python
# —————————————————————
# copy_borders_value.py
#
# Aug/08/2024
# —————————————————————
import sys
import openpyxl
from openpyxl.styles.borders import Border, Side
from openpyxl.utils import get_column_letter
# ———————
Aランク解きたい人超必見!!Aランク問題全てを考察から解法まで超丁寧に解説
## 0. はじめに
みんなでAランク問題を解こう!ハッピー!気を取り直して、簡単な自己紹介をします。
* 高校生
* 記事投稿時AtCoder緑(989) -> [yuuDot](https://atcoder.jp/users/yuuDot)
* 競技プログラミングをメインにプログラミングをしている
* 2月ごろに始めたときはif, for, whileなどがわかるくらい(continue ?, def ? なんすかそれ、みたいな感じでした)
* Qiita初投稿。不備などあったら是非教えてください。今回は競技プログラミングをしていなかった頃の自分にもわかるくらい、丁寧に自分の考え方などを書いていこうと思います。
少しでもアルゴリズム、プログラミングのすばらしさを知っていただければ幸いです。**さあ、行こう!**
## 1. Aランク問題の個人的な印象
今回全5問のAランク問題をすべて解いてみたところ、完全に典型的な処理を適用するものと、考察を行い、それに適したアルゴリズムを適用するものの二つに分かれていると感じました。
#### 典型的なもの
* お菓子の詰め合わせ
足し算 (paizaランク D 相当) Python解答例
## 問題:2つの正の整数 a, b が半角スペース区切りで入力されるので a と b を足した数を出力してください。
※「掛け算」の問題では入力が改行区切りで与えられましたが、今回は半角スペース区切りで与えられます。
入力は以下のフォーマットで与えられます。
a b### まず、Python3でinputとsplitを使用し、複数の値を受け取ります。
inputで複数の値を取得する際に、複数の値を取得する方法をまとめます。
指定された数の文字列を格納します。
“`diff_python# 入力された文字列を分割してaとbを取得します
a, b = input().split()“`
### 次に、Python3のmap()を用いて、全ての要素に関数を適用します。int関数を使った記述方法は以下の通りです。
“`diff_python
# map()を使って入力された文字列をintを使って、数値として分割してaとbを取得します
a, b = map(int, input().split())“`
#### 数値として分割できているか心配な場合は、p