- 1. 絵文字を一文字ずつ処理する方法
- 2. Pythonでprintデバッグから卒業する【VSCode・CursorでPythonのデバッグ】
- 3. Anaconda(conda) / Python / PyPI(pip) コマンド比較
- 4. [Python3][Linux]画像サイズを一括変換する方法
- 5. ターミナル文字列出力時、かっこいいエフェクトを追加する
- 6. Openpyxl: シートのコピー
- 7. python-lambda-local を使って AWS Lambda 関数をローカル環境で実行する
- 8. Macでのpython-axolotl-curve25519インストール時のエラー対処
- 9. 【Python】Lambda Layerの作成方法
- 10. Anacondaで実行可能なPython(バージョン)の検証
- 11. メールログからFWにて怪しいIPをブロック
- 12. PLCとマイコンの接続で躓いたこと
- 13. Amazon Linux2023にpyenvを利用してpython3.12をインストール
- 14. ファイル形式を変換するデスクトップアプリ
- 15. Pillow: カラー画像を白黒に変換
- 16. Python3 株価データ取得
- 17. ABC355 with Python (A~D, F)
- 18. Python3: Moodleの「参加者」の「詳細レポート」で、小テストを実施した回数をカウントする
- 19. SSH接続しているサーバー上でPythonの最新版をインストールしたい
- 20. Webカメラを使おう
絵文字を一文字ずつ処理する方法
# 結論
[emojiモジュール](https://pypi.org/project/emoji/)を使うと、できます。
“`python
import emoji
text=”👧🏻”
emoji.replace_emoji(text,replace=lambda e, data_dict:print(e,end=” “))
# 👧🏻
“`
# 解説一般的に、Pythonで一文字ずつ処理したい場合、これでいけます。
“`python
text=”ABCD”
[print(e,end=” “) for e in list(text)]
#A B C D
“`
しかし、ZWJ emojiが含まれている状態で行うとうまくいきません。
“`python
text=”👧🏻”
[print(e,end=” “) for e in list(text)]
# 👧 🏻
“`## 参考
https://carpedm20.github.io/emoji/docs/#non-rgi-zwj-emoji
Pythonでprintデバッグから卒業する【VSCode・CursorでPythonのデバッグ】
# はじめに
CやC++においてVSCodeの拡張でデバックを行ったことがあるのですが、Pythonでも簡単に導入できたので記事にしました。:::note warn
注意
VSCodeと書いていますが、実際にはCursorを使用しています。どちらでもほぼ同じ形で使用できると思います。
:::VSCodeのデバックを導入することで出来るようになること
1. 全ての変数の値がわかる
1. ブレークポイントを設定して、プログラムを途中で止めながら順番に確認する事ができる
1. print文を書かなくて良くなる# 導入
VSCodeの拡張機能をインストールします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085757/59b6d8e3-ce27-5050-653a-1834c9004f9d.png)
画面左側の「launch.jsonファイルを作成します」をクリックすると、今開いているプロジェクトのルートに`.vscode`ディレクトリと`launch.json`が作成
Anaconda(conda) / Python / PyPI(pip) コマンド比較
# 概要
Anaconda(conda) / Python / PyPI(pip) コマンドを比較しました。
###### 表1. コマンド情報
|コマンド|バージョン|備考|
|:–|:–|:–|
|conda|24.1.2[^1]|Anaconda|
|python|3.9.18[^2]|Python|
|pip|21.2.3[^2]|PyPI|
# Anaconda と Python コマンドの比較
###### 表2. Anaconda / Python コマンド情報
|用途|Anaconda ( conda コマンド)|Python ( python コマンド)|
|:-|:-|:-|
|仮想環境作成|\\$ conda create –name <仮想環境名> python=<Pythonバージョン番号>例)
\\$ conda create –name testEnvAna01 python=3.11
\\$ conda create –name testEnvAna02 python=3.6|\\$ pyt
[Python3][Linux]画像サイズを一括変換する方法
## 要 旨
Linux下においてPython3を使用して画像サイズを一括変換する方法について記述します。
## 実施要領
### 準備
作業用フォルダimage_resizeの作成
“`linux
mkdir image_resize
“`
作成したimage_resizeフォルダ内に入る。
“`
cd image_resize
“`仮想環境venv構築
“`
python -m venv .venv
“`
仮想環境のアクティブ化を実施
“`
source ./.venv/bin/activate
“`
画像処理に便利なPIL(Python Image Library)をインストールする。
“`
pip install pillow
“`
画像サイズを320×320に一括変換する処理を含ませたpythonコードを作成する。
なお変換可能な画像の型式は、png、jpg、jpegである。
“`python3:resize.py
from PIL import Image
import osdef resize_images(input_dir, output
ターミナル文字列出力時、かっこいいエフェクトを追加する
## はじめに
とにかくかっこいい見た目が好きなので、ターミナル・かっこいい・エフェクトというワードを見つけたので、やってみました。ターミナルの文字列出力にかっこいいエフェクトを追加できるライブラリ「TerminalTextEffects」
https://gigazine.net/news/20240529-terminal-text-effects/
## 環境
– WSL2(Linux-Ubuntu)
– python3が必要## TerminalTextEffectsインストール
“`bash:WSL2:Ubuntu
# アップデート
sudo apt update
sudo apt upgrade -y# pipxのインストール
sudo apt install pipx -y# terminaltexteffectsのインストール
pipx install terminaltexteffects# パスを通す
pipx ensurepath
“`ターミナルを再起動が必要
## ScreenFetchインストール
紹介されていた記事で使
Openpyxl: シートのコピー
file_a.xlsx のシート1を、file_b.xlsx にコピーする方法です
## プログラム
“`py:sheet_copy.p
#! /usr/bin/python
# —————————————————————
# sheet_copy.py
#
# May/31/2024
# —————————————————————
import sys
import openpyxl
from openpyxl.styles import Border, Side, Alignment, Font# —————————————————————
xlsx_in=sys.argv[1]
xlsx_out=sys.argv[2]
#
sheettitle = ‘コード一覧’wb1 = openpyxl.load_work
python-lambda-local を使って AWS Lambda 関数をローカル環境で実行する
# はじめに
Lambdaのプログラムをテストする際、毎回 Lambda 関数を更新して実行するのは面倒ではないですか?
そこで良い方法ないかなと調べていたところ、 **python-lambda-local** というツールを知りました。https://github.com/HDE/python-lambda-local
# 仕様
Python 3.7+
今回試した環境のバージョンは 3.9.6 でした。
“`bash:バージョン
$ python3 –version
Python 3.9.6
“`# インストール
pip でインストールすれば完了です。“`bash:インストール
$ pip install python-lambda-local
“`# オプション
使い方とオプションは以下になります。“`bash:使い方
$ python-lambda-local [-h] [-l LIBRARY_PATH] [-f HANDLER_FUNCTION]
[-t TIMEOUT] [-a ARN_ST
Macでのpython-axolotl-curve25519インストール時のエラー対処
#### 前置き
この前、MacBook Proでpython-axolotl-curve25519をインストールしようとしたら、エラーが出たので対処法を書き留めておく。
github: https://github.com/tgalal/python-axolotl-curve25519### エラー内容
“`
DEPRECATION: Loading egg at /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/python_axolotl-0.2.3-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330
Collect
【Python】Lambda Layerの作成方法
# Lambda Layerを作成したいがめんどくさい
Lambda LayerはAWS Lambdaに標準で用意されていないライブラリや自分で作成した関数などを取り込む際に利用します。
一見zipファイルを作成してアップロードするだけなんですが、いくつか落とし穴があります
– Amazon Linuxで作成する必要がある(場合がある)
– LambdaはAmazonLinuxで動いている
– macOSなどでインストールしたものがAmazonLinuxで動かない場合があるため
– 求められるディレクトリ構造が実はある
– apiでのzipアップロードはファイルサイズの制限があるなどなどで躓いたのでやり方をまとめておきます
## AmazonLinuxでのpython実行環境の用意
構築方法は別記事にまとめました。ローカル環境(macOSやWindows)でインストールしたライブラリをアップロードすると、動くときもありますが動かないときもあります。仮に動いたとしても、基本的にはAmazonLinuxで作成するほうが良いでしょう。
pythonはLambdaで使用す
Anacondaで実行可能なPython(バージョン)の検証
# 目的
Anaconda3[^1]で実行できるPythonのバージョンを検証してみます[^2]
[^1]:Anacondaとは、Anaconda社によって開発、配布されているPythonディストリビューションです
[^2]:検証モジュール:Anaconda3-2024.02-1-Linux-x86_64.sh# AnacondaとPyPIについて
バージョン違いのPython実行用環境を複数用意しようとした場合、Anacondaの方が簡単に環境構築できます。Anacondaをインストールするだけで、condaコマンドを使って異なるバージョンのPython実行環境を構築できます。一方、Anacondaと比較されることがあるPyPIで同じことを実施しようとした場合、手動でバージョン管理を行う必要があります。バージョン毎に公式サイトからPythonをダウンロードしてインストールしなければなりません。
# Anacondaインストール方法
###### インストール環境
* Red Hat Enterprise Linux 9.4
* Anaconda3-2024.02-1-Lin
メールログからFWにて怪しいIPをブロック
# メールログから怪しい国外IPアドレスを取得しブロックする方法
このスクリプトは、メールログから取得したIPアドレスをファイアウォールでブロックします。
日本国内のIPアドレス範囲に該当するIPは除外し、それ以外のIPをブロックします。## 1. Pythonスクリプト (`/root/fw_script/deny_ip.py`)
“`python
“””
deny_ip.py
このスクリプトは、メールログから取得したIPアドレスをファイアウォールでブロックします。
日本国内のIPアドレス範囲に該当するIPは除外し、それ以外のIPをブロックします。
“””import ipaddress
import subprocess
import datetimelog_entries = []
def log(message):
print(message) # コンソールに出力
log_entries.append(message) # ログエントリに追加# 日本のIPアドレス範囲を読み込み
with open(‘/root/fw_script/
PLCとマイコンの接続で躓いたこと
# はじめに
こんにちは、株式会社COSMでインターンをしている東京大学工学部4年の前澤です。
今回、製造業のDXを推進するCOSM IoT Gateの開発にあたり、PLC(キーエンス製KV-8000シリーズ)とマイコン(ラズベリーパイを使用)を接続し、センサデータを取得しました。その方法、および苦戦したことの解説をします。
## COSM IoT Gateについて
工場内の機械についている、センサを通してあらゆるデータを取得し、その情報をオンラインで一元管理を可能にし、DXを推進するプラットフォームです。
具体的には、センサ情報をリアルタイムで監視し、さらにそれらを時系列データとしてクラウド上で保存、機械学習での分析を行うことで、故障や部品の交換タイミングの予測を行います。
[COSM IoT Gate](https://gate.cosmcorp.jp/)
## 背景
上記で解説したCOSM IoT Gateの最も予想されるユースケースは、工場内のマシンの情報を取得し、管理するというものです。
ここで重要になるのが、PLCからのリアルタイムでの情報の取得です。
Amazon Linux2023にpyenvを利用してpython3.12をインストール
# pyenvのinstallのドキュメントがややこしい
基本はpyenvのドキュメントを見れば良いのですが、ぱっと理解できずまとめておきますhttps://github.com/pyenv/pyenv?tab=readme-ov-file#getting-pyenv
## EC2のスペック
最初スペックがいらないのでt3.nano、EBS8GBでインストールしようとしたのですがメモリ・ストレージ(tmpディレクトリ)が足りなくてインストールできなかったので今回はt3.small,16GBでインストールしています。## 手順
1\. 事前に必要な開発ツールをインストール
“`shell
# pyenvに必要なものをinstall
sudo yum groupinstall “Development Tools”
sudo yum install -y bzip2-devel ncurses-devel libffi-devel readline-devel openssl-devel zlib-devel
“`2\. pyenvのインストール
“`shell
cu
ファイル形式を変換するデスクトップアプリ
# ファイル形式を変換するデスクトップアプリ
### はじめに
備忘録です。数年前に作ったコードで、とても汚いので戒め的な意味もあります。## ソースコード
“`python:henkan_meijin.py
import os
import wx
import time
import ffmpy
import ffmpeg
j1 = os.path.dirname(os.path.abspath(__file__))class FileDropTarget(wx.FileDropTarget):
def __init__(self, window):
wx.FileDropTarget.__init__(self)
self.window = window #ファイルをドロップする対象def OnDropFiles(self, x, y, filenames):
for file in filenames:
self.window.box.SetValue(file)
Pillow: カラー画像を白黒に変換
## プログラム
“`py:convert_to_gray.py
#! /usr/bin/python
#
# convert_to_gray.py
#
# May/28/2024
# ——————————————————————–
import sys
from PIL import Image
# ——————————————————————–
sys.stderr.write(“*** 開始 ***\n”)
file_in = sys.argv[1]
file_out = sys.argv[2]
sys.stderr.write(file_in + “\n”)
sys.stderr.write(file_out + “\n”)
#
aa_jpg = Image.open(file_in,’r’)gray_img = aa_jpg.convert(‘L’)
#
gray_img.save
Python3 株価データ取得
### 概要
“`
株価データを取得しグラフを作成しExcelファイルに出力する。
“`### 詳細
“`
1
必要なライブラリをインポート。データのダウンロード(yfinance)、データの操作とグラフの作成(matplotlib.pyplot)、Excelファイルの作成(openpyxl)が含まれます。2
yfinanceを使用して、指定した銘柄コード(この場合はトヨタの”7203.T”)の過去6ヶ月間の株価データをダウンロードします。3
ダウンロードしたデータをコンソールに表示します。4
matplotlib.pyplotを使用して、ダウンロードしたデータから終値の折れ線グラフを作成し、画像ファイル(graph.png)として保存します。5
openpyxlを使用して新しいExcelワークブックを作成します。6
ダウンロードしたデータをExcelの”Data”シートに書き出します。7
作成したグラフの画像を新しい”Graph”シートに追加します。8
作成したExcelワークブックをtoyota_stock_data.xlsxという名前のファイ
ABC355 with Python (A~D, F)
ABC355のA~D, F問題をpythonで解説していきます。筆者はA-Dの4完でした。
# A – Who Ate the Cake?
## 問題
高橋君のケーキが誰かに食べられてしまいました。ケーキを食べた犯人の候補として、人 $1$、人 $2$、人 $3$ の三人が挙げられています。犯人の目撃者はりんごさんとすぬけくんの二人がいます。りんごさんは人 $A$ が犯人でないことを覚えており、すぬけくんは人 $B$ が犯人でないことを覚えています。
二人の記憶から犯人を一人に特定できるかどうか判定し、特定できるならばその人の番号を出力してください。
https://atcoder.jp/contests/abc355/tasks/abc355_a
## 考察
人1から人3まで順に、無実リストに入っているかチェックします。入っていない人をリストに入れていき、最終的にその長さが1より大きかったら怪しい人が複数いるため特定不可の-1、そうでなればそのリストに入っている人を答えとして出力すればよいです。## コード
“`python:A.py
ans = []
candi
Python3: Moodleの「参加者」の「詳細レポート」で、小テストを実施した回数をカウントする
# はじめの前のおねがい
できれば「いいね♡」をお願いします。励みになります。# はじめに
このコードは**Python3**に対応したMoodleの「参加者」の **「詳細レポート」** から、**小テストを実施した回数**をカウントするためのものです。# このコードの目的
Moodleは低コストで課題や小テストなどが運用できるのは良いのですが、データベースが **学生さんごとに表示されることを前提**としていて、なんとなくカード型データベースっぽい感じがします。学生さん1人1人を見るときにはそれで良いのですが、授業運営をする場合には**小テスト**の最高点がどうなのか、受験回数はどうなのかといった統計値を出す必要があるわけで、基本的にはサイドバーの「評定」を使用して得点状況については一覧性のあるデータを抽出できるわけですが、正直言って小テストが多ければ多いほど、学生さんが増えれば増えるほどスクロールも増え、どうも統計値を出すのにExcel(あるいはNumbers)の方が使い勝手が良くなります。その場合、**何度受験しても構わないし、その中で最高点を評価として使用する**
SSH接続しているサーバー上でPythonの最新版をインストールしたい
SSH接続しているサーバー上でPythonの最新版をインストールしたい
# 私の状況
Python コマンドを打てば、下記のようなものが出たがバージョンが2.xxxでちょっと古かった~~~
$ python
Python 2.7.5 (default, Nov 16 2020, 22:23:17)
[GCC xxxxxxxxxx (Red Hat x.x.x-xx)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> python3
Traceback (most recent call last):
File ““, line 1, in
NameError: name ‘python3’ is not defined
>>>
KeyboardInterrupt
>>>~~~
Python3を打つと下記のように出てしまう
~~~
bash: python3: command not found…
Simi
Webカメラを使おう
# はじめに
こんにちは、@yomo93 です。
私は画像処理を用いたロボットの制御について研究しています。そこでロボットの制御と**リアルタイムカメラ映像取得**を同時に行うために作成したプログラムをご紹介したいと思います。
今回はPCにUSB端子を用いて接続したカメラを用いることを想定しています。# カメラ設定
リアルタイム映像を取得するにあたって、カメラ設定を指定する必要があります。それらの設定は`config.json`という設定ファイルを作成してそこに記述するようにしましょう。Webカメラを使うということは撮影現場での調整が必要ということです。現場ではできる限りプログラムはいじらず、`config.json`を編集する方が楽だし早いです。
以下に`config.json`の記述例を記します。このファイルの中身をプログラムから読み込みます。“` config.json
{
“cam_num”: 0,
“width”: 1440,
“height”: 1440,
“fps”: 15,
“is_record”: true
“