- 1. Python Script: Retrieve and Print Zabbix API Version
- 2. 【Python】文字列の先頭・末尾n文字を削除する方法
- 3. 【Python】カタカナやひらがなをそれぞれに変更する方法
- 4. 【Python】画面をスクロールする方法
- 5. 【Python】ウインドウの切り替え方法
- 6. 実務でPandasとMatplotlibを使う時がやっと来た
- 7. 【Python】画面外の要素をクリックする方法
- 8. 【Python】.textで要素が取得できない場合の対処法
- 9. Python 画像から動画を作成する(マルチプロセス)
- 10. defaultdictでコードをスッキリさせる
- 11. mlflow.start_run(nested=True)を使わないRun間の親子関係の設定方法
- 12. I created an app with Django【Employee management】
- 13. Pythonの基本的な入門
- 14. List操作のデバッグを効率化するラッパークラス活用法
- 15. [画像処理]バイキュービック補間法では画像はどう補間されるのか?
- 16. 【Python】Atcoderでよく使う処理まとめてみた
- 17. matplotlibを使ってレーダーチャートを作成する
- 18. Dev Containerとpoetryを使って開発環境を構築してみる。
- 19. 寝ている時に異常を知らせる通知音を出させる
- 20. とりあえずの目標
Python Script: Retrieve and Print Zabbix API Version
## Step 1
First, ensure you have the `requests` library installed in your Python environment, as it’s a common library for making HTTP requests. If it’s not installed, you can install it using pip
“`
pip install requests
“`## Step 2
Use the following Python script to retrieve Zabbix API version.
**Replace `YOUR_ZABBIX_URL` with the URL of your Zabbix server** and ensure that you have the correct endpoint for the API (commonly it’s /api_jsonrpc.php).“`retrieve_zabbix_version.py
import
【Python】文字列の先頭・末尾n文字を削除する方法
◆問題
文字列の先頭・末尾n文字を削除する方法が分からなかった。◆対処法
スライスを使用すればできた。“`python:slice.py
txt = ‘あいうえお’
print(txt[:-2]) #末尾から2文字を削除
print(txt[4:]) #先頭から4文字を削除# 実行結果
あいう
お
“`
【Python】カタカナやひらがなをそれぞれに変更する方法
◆問題
カタカナやひらがなをそれぞれに変更する方法が分からなかった。◆対処法
「jaconv」を使用すればできた。“`python:kana_hira.py
import jaconvword1 = “ヤサイ”
change_word_hira = jaconv.kata2hira(word1)
print(change_word_hira)word2 = “らーめん”
change_word_kana = jaconv.hira2kata(word2)
print(change_word_kana)# 実行結果
やさい
ラーメン“`
【Python】画面をスクロールする方法
◆問題
画面のスクロールができず、要素の取得やクリックができなかった。◆対処法
「driver.switch_to.window」を使用したらできた。“`python:after.py
# 最下部までスクロール
driver.execute_script(‘window.scrollTo(0, document.body.scrollHeight);’)# 最上部までスクロールする
driver.execute_script(“window.scrollTo(0, 0)”)# X座標に0ピクセル、Y座標に500ピクセルスクロールする
driver.execute_script(“window.scrollTo(0, 500)”)
“`
【Python】ウインドウの切り替え方法
◆問題
新規ウインドウを立ち上げた際に、切り替え方法が分からず操作できなかった。◆対処法
「driver.switch_to.window」を使用したらできた。“`python:after.py
new_handles = driver.window_handles
driver.switch_to.window(new_handles[0]) # 1番目のウインドウ
driver.switch_to.window(new_handles[1]) # 2番目のウインドウ
…
driver.switch_to.window(new_handles[-1]) # 最後のウインドウ
“`
実務でPandasとMatplotlibを使う時がやっと来た
# はじめに
AWS エンジニアになる前は Python を独学で学び、Pandas や Matplotlib などデータ分析に関わるライブラリを触ってきました。
実務で使うことはあるのかと思っていましたが、ようやく学んだことを活かせる時が来たので記事にしようと思います。
# どんな業務で扱うことになったのか?
AWS エンジニア(インフラ担当)として、**『AWS リソースの使用状況を月次で報告する』** という月一の定例業務が発生することになりました。
EC2 インスタンスの 1 ヶ月の CPU やメモリの使用率などの推移を見て、今後のキャパシティプランニングに役立てる目的のためです。
私がジョインしているプロジェクトでは、システムの機能ごとに複数の AWS アカウントを使用し、かつ EC2 インスタンスを冗長化しているためサーバ数が多い状況です。
手作業で各サーバの CPU、メモリ使用率を確認していては月一の作業に対しての工数がかかってしまいます。そこで、以下の方法で『工数がかかりすぎる問題』を解決しました。
[![Image from Gyazo](https
【Python】画面外の要素をクリックする方法
◆問題
XPATHなどで指定し「.click()」でクリックしようとすると、できないことがあった。◆対処法
「execute_script」を使用したらできた。“`python:before.py
driver.find_element(By.XPATH, ***).click()
“`“`python:after.py
click_element = driver.find_element(By.XPATH, ***)
driver.execute_script(“arguments[0].click();”, click_element)
“`
【Python】.textで要素が取得できない場合の対処法
◆問題
XPATHなどで指定する際に、空白があると上手く取得できないことがあった。◆対処法
「.text」部分を「.get_attribute(“textContent”)」に置き換えると取得できた。“`python:before.py
element = driver.find_element(By.XPATH, ***).text
“`“`python:after.py
element = driver.find_element(By.XPATH, ***).get_attribute(“textContent”)
“`
Python 画像から動画を作成する(マルチプロセス)
# はじめに
今回はフォルダ内の画像ファイルから動画を作成します。
これはOpenCVを使って簡単に実現できます。“`python:test_img_cv.py
import os
import glob
from tqdm import tqdm
import cv2input_dir = ‘image’ # 入力する画像が保存されたフォルダ名
output_path = input_dir + ‘_cv’ + ‘.mp4’ # 作成する 動画ファイル
print(output_path)# フォルダ内の画像のファイルリストを取得する
files = glob.glob(os.path.join(input_dir, ‘*.png’))
files += glob.glob(os.path.join(input_dir, ‘*.jpg’))
files.sort()
frames=len(files)
assert frames != 0, ‘not found image file’ # 画像ファイルが見つからない# 最初の
defaultdictでコードをスッキリさせる
こんにちは、@tokioxxxjpnです。
フィグニー株式会社という会社のメンバーとして、企業のシステムのリプレイス、DXなどのプロジェクトに多く携わっています。
そういった業務の目線でみなさんと経験知見を共有しあえたらと思っています。# defaultdictについて。
本記事ではdefaultdictについて紹介します。
基本的な使い方から、実務目線での利用例をお話させていただきます。### なぜdefaultdict?
冒頭でも話しましたが、筆者は企業の業務効率化やデータの有効活用のためのシステム開発に携わることが多いのですが、大体の場合企業のデータは非常に雑多で入り組んでいます。
なのでそれらのデータをプログラム内で使いやすくするために整形するという作業がほぼ必ず発生します。
pythonであればlistやdictを駆使すれば基本的には事足りるのですが、pythonにはさらに一歩踏み込んだ、かゆいところに手が届くようなライブラリが標準で組み込まれており、その一つがdefaultdictです。
# defaultdictの基本的な使い方
“`python
mlflow.start_run(nested=True)を使わないRun間の親子関係の設定方法
## 目次
[1. はじめに](#はじめに)
[2. 親子関係がどのように設定されているか](#親子関係がどのように設定されているか)
[3. `nested`オプションを使わない親子関係の作り方](#nestedオプションを使わない親子関係の作り方)
[4. 参考文献](#参考文献)## はじめに
mlflowは、機械学習プロジェクトの実験管理を容易にするツールです。特に、実験(Run)に親子関係を持たせて管理することで、複雑な実験の追跡と分析が簡単になります。
通常Runに親子関係を持たせたい場合は、`mlflow.start_run(nested=True)`とすればいいのですが、それが適用できない場面に遭遇したため、他の方法でRun間に親子関係を持たせる方法を調べることになりました。
この記事では、mlflowのRunの親子関係がどのように記述されているか、`nested=True`オプションを用いないで親子関係を持たせる方法をまとめています。## 親子関係がどのように設定されているか
mlflowでは、“`tags.mlflow.parentRunId“`によって
I created an app with Django【Employee management】
## Create a project
“`
django-admin startproject project2
python3 manage.py startapp employee
python3 manage.py migrate
python3 manage.py createsuperuser
“`
## Edit to suit your project① Edit settings.py
“`settings.py
//省略
INSTALLED_APPS = [
“employee.apps.EmployeeConfig”,//省略
LANGUAGE_CODE = “ja”TIME_ZONE = “Asia/Tokyo”
“`
② Edit urls.py“`urls.py
//省略
from django.contrib import admin
from django.urls import path, includeurlpatterns = [
path(“admin/”, admin.site.urls),
Pythonの基本的な入門
## 前提
Pythonのインストールはこちらhttps://qiita.com/Tasuku-Q/items/8625321f2c3a7f062c4f
Pythonはプログラム初心者でも学びやすい言語と言われています
またプログラム言語ランキングでもよくTOP5に入っている言語です## Pythonの基本
・Hello world
新しい言語の勉強ではまずこれでしょうtest.pyのファイルを用意して実行してみましょう
“`test.py
print(“Hello world”)
“`用意できたら実行してみましょう
“`zsh
% python test.py
Hello world
“`
はい、「Hello world」が確認できました
ではPython基本的なところを学んでいきましょう
各項目毎にサンプル処理を紹介しますので一緒に「test.py」などにコピペして実行してみてください#### ※pythonの実行に関して
インストールしているpythonが3系の方は実行コマンドがこちらになります、本記事では実行コマンドは「python」で統一して
List操作のデバッグを効率化するラッパークラス活用法
# はじめに
Java や Python など、多くのプログラミング言語で List やその他のコレクション型のデータ構造は頻繁に使用されます。これらのコレクションにオブジェクトを追加する際、特に複雑なアプリケーションや可読性の非常に低いコードでは、デバッグが難しくなることがあります。特に、List のオブジェクトクラスなどが多用されている場合、問題の追跡と解決はより複雑になります。このような状況を解決するための有効なデバッグ方法の一つが、List の Add メソッドなどのメソッドをラップしてブレークポイントで捕まえるテクニックです。
# 方法の概要
この方法では、既存の List にオブジェクトを追加する Add メソッド(あるいは同様の機能を持つメソッド)をカスタムラッパークラスで包みます。このラッパークラスでは、Add メソッドが呼び出された際に特定のアクションを実行することができ、デバッガーのブレークポイントを設定して実行時に停止させることが可能です。これにより、開発者はオブジェクトが List に追加される正確な時点を特定し、追加されるオブジェクトの状態を詳細に調査す
[画像処理]バイキュービック補間法では画像はどう補間されるのか?
# はじめに
先日、画像の補間方法について記事を書いた。https://qiita.com/sasshi_i/items/71189dc3a5c637fda3a4
本記事で紹介するバイキュービック補間法も画像を拡大、縮小、回転する時に利用できる補間法の1つである。バイキュービック補間法ではどのような処理が行われるのか解説していく。
# バイキュービック補間法とは?
バイキュービック補間法は、16個の画素値を用いて補間する画素の画素値を求める方法である。16個の画素の加重平均を基に補間する画素の画素値を求める。処理の流れを以下に示す。## 処理の流れ
変換後の画像の座標$(x’, y’)$における画素値を求める手順は以下の通り。
1. 拡大率を$α$とした時、$(\frac{x’}{α}, \frac{y’}{α})$を求める
2. $(\frac{x’}{α}, \frac{y’}{α})$の整数部の座標の画素値を$Src(0,0)$とすると、$x$軸方向および$y$軸方向の-1~+2の範囲における16画素を得る
3. 周囲16画素それぞれと$(\frac{x’}{α},
【Python】Atcoderでよく使う処理まとめてみた
# 処理まとめ
Atcoderの問題を解いている時によく使うプログラムを共有します。
最後は問題もあるので是非解いてみて下さい。
## 数値で入力受け取り
数値で入力を受け取る場合は以下のコードです。
“`python
# 数値で受け取る
num = int(input())
“`
### 実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759758/7f644227-43c4-c6fd-5fba-ef514b054860.png)## 文字列で入力受け取り
以下のコードになります。
“`python
# 文字列で受け取る
s = input()
“`
### 実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759758/3abd86d4-8627-9288-361e-86f0cfa3cf98.png)## 半角スペースで数値受け取り
以下のコードになり
matplotlibを使ってレーダーチャートを作成する
## やりたいこと
– 以下のようなレーダーチャートが描けるようになる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/81852238-8213-9313-c932-527140a1b0d0.png)
## matplotlibを使う方法
### 1. 必要なパッケージのインストール
– まずは基本的なパッケージをインストールする
“`python
import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib
“`### 2. データを準備する
– 物体検知モデルの各ラベルごとの精度を可視化することを想定して適当なクラスおよび精度を指定
“`python
label_list = [‘車’, ‘人’, ‘自転車’, ‘犬’, ‘猫’, ‘バス’, ‘トラック’, ‘信号’]
acc_list = [0.90, 0.85, 0.75, 0.80, 0.95, 0
Dev Containerとpoetryを使って開発環境を構築してみる。
# 前提
– 開発環境: VSCode の Dev Containers
– パッケージ管理: Poetry
– Dockerが自分のPC上で稼働していること# 作業
## Dev Containerの導入
`Command + Shift + P`でパレットを開き、以下のように選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850024/bcd98644-1891-b481-9616-bbb58bc66ef5.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850024/a8883c7f-24ab-6b5d-b5c6-0318c341a8b6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850024/b31d92fe-1232-223d-ecff
寝ている時に異常を知らせる通知音を出させる
実行に時間がかかる処理を行うなら、夜寝たりとか別作業をしたりしたい。
そうなると、いつの間にか処理が失敗しており、気づくまでの間の時間がタイムロスになったりすることが度々ある。
そこでPythonで何か異常を検知したら警告音を出してくれるような仕組みを作りたい。
それも、なるべく再利用できるような形にしておきたいのと、汎用的にしたい。テキトーに警告音となるMP3ファイル(今回はkeikoku01shibu.mp3)を用意する。
デコレータでラッパー関数を作り、ラッパーされる処理が特定の条件を満たしたり、例外が発生したらその警告音を出すようにする。
“`python
from playsound import playsounddef watch_allert_with_args(arg = None):
def watch_allert(func):
def _watch_allert(*args, **kwargs):
path = ‘sounds/keikoku01shibu.mp3’
try:
とりあえずの目標
とりあえず目標を書いてみる。やりながら考えよう。
* 環境構築
* pythonの環境を作る
* pythonが使えるようになる
* 一日単位
* 株のホームページをスクレイピングして取り込む
* 手元のデータベースによって株を分類する
* 分類した結果を表とグラフにする
* 表とグラフをhtmlにする
* htmlをメールで送付する
* エラーが発生したらそれもエラーで送る
* 自動起動させて週1くらいで自動でメール送付する
* 時系列化
* 取得したデータを保管して時系列データを作る
* 時系列データをhtmlで保存する
* エラー発生時さかのぼって修正できるようにする