Python3関連のことを調べてみた2022年08月11日

Python3関連のことを調べてみた2022年08月11日

PIL.Image.Imageをdiscord.Fileに変換したい

こんにちはbeatbox4108です。
今回は少しPythonを書いていて躓いた点を覚書程度にまとめましたので見てみてください

# TL;DR

:::note
`io.BytesIO`を使おう。
:::
:::note warn
`seek(0)`するのを忘れずにしよう。
:::
# 本文
Pythonで、Discordのスラッシュコマンドに反応して画像を送るbotを作っていた時のこと…

**あれ?ファイルに出力しないと送信できなくね?**

この時の環境、クラウド上で容量が結構少なかったのでどうしてもファイルに出力するのは避けたかったんです。
でも**ファイルオブジェクト**かパスじゃないと送信できないし…

と、気づいたんです。そうか`BytesIO`介せばいいのか!
ということで書いたこちらのコード、ダメな点が一つありました。
“`python3
# im は PIL.Image.Image
fileio=BytesIO()
image.save(fileio,format=”png”)
await interaction.followup.send(file=d

元記事を表示

PythonのSeleniumでWebを自動操作する

Chromeの操作を自動化したくてSelenium4を使ってみました。Selenium4を調べてみると結構機能が多かったので、私が使いそうなものだけ記載してあります。

# インストール

まずSeleniumで使用するChromeをインストールします。

“`bash:
apt install google-chrome-stable
“`

次にSelenium4をインストールします。

“`bash:
apt install python3-selenium
“`

# ライブラリのインポート

Seleniumのライブラリをインポートします。

“`python:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdri

元記事を表示

Pythonをwsl2-Debianにインストールする

Python3(ver. 3.10.6)をwsl2版Debian(ver. 11.3)にインストールした際、遭遇したエラーと対処です。言うほどエラーですかね?
# 最も簡潔と思しき道筋
1. apt で依存関係のパッケージをインストール。パッケージはマニュアルにリストされている。
https://devguide.python.org/getting-started/setup-building/index.html#build-dependencies
2. パッケージをダウンロードして解凍し、“`./configure“`を実行した後、コンパイルしてインストールする。
“`
$ ./configure –enable-optimizations –with-lto –with-ensurepip
$ make -j 8
$ sudo make install
“`
“`make install“`だけ“`sudo“`するのにこだわりはない。インストール先がユーザーローカルではなく、root権限でないと書けない場所なので“`sudo“`で実行した。このような

元記事を表示

Python-VLC の使い方

Ubuntu 22.04 でライブラリーのインストール

“`bash
sudo apt install python3-vlc
“`

“`py:replay_mp4.py
#! /usr/bin/python
#
import sys
import vlc
import time

sys.stderr.write(“*** start ***\n”)
file_mp4 = “./sample-5s.mp4”
media = vlc.MediaPlayer(file_mp4)

# start playing video
media.play()

loop_forever = True
while loop_forever:
try:
time.sleep(5)
except KeyboardInterrupt:
loop_forever = False
sys.stderr.write(“*** interrupted ***\n”)
#
sys.stderr.write(“*** end ***\n”)
“`

mp4 ファイルはこちらからサン

元記事を表示

WindowsのPythonでデスクトップ通知(トースト)作ってみた【WinRT】

win10toastを使っているのですがWin32のため、WinRTで実装してみました。シングルファイルモジュールで作ってみました。

https://github.com/GitHub30/win11toast

[![Python](https://img.shields.io/pypi/pyversions/win11toast.svg)](https://badge.fury.io/py/win11toast)[![PyPI](https://badge.fury.io/py/win11toast.svg)](https://badge.fury.io/py/win11toast)
## インストール

“`bash
pip install win11toast
“`

## 使い方

“`python
from win11toast import toast

toast(‘Hello Python🐍’)
“`

![image](https://user-images.githubusercontent.com/12811398/183365362-dd163b1d

元記事を表示

aws-cliとjupyterでAWSサービスのセットアップ

システムセットアップを簡単にするための全ての設定

# 環境
・MacBook Pro
・macOS Mnterey 12.5
・Apple M1 Max

## 1.AWS/IAM
AWSのIAMから、今回のjupyterでアクセスできる権限を持ったIAMユーザーを作成し、アクセスキーとシークレットアクセスキーを入手する。
そのキーの取り扱いには十分に注意する。

## 2.local/仮想環境の作成
仮想環境で実行するのがおすすめ。
Miniforge3+condaで作成しているので、 `conda acrivate hoge` という形で環境に入る。

### モジュールのインストール
`pip install awscli`

## 3.cliの設定
`aws configure –profile hoge`
AWS Access Key ID [None]: `{アクセスキー(各自)}`
AWS Secret Access Key [None]: `{シークレットアクセスキー(各自)}`
Default region name [None]: `{us-west-2(←オレ

元記事を表示

Tensorflowで自分に合った彼女を探すCNNを実装しようとしてみた~SSDで画像検出!~(第三回)

# 目的
前回、顔をタイプ分けしてみたいなことをしてきました!!

今回は最初に試してた写真全体から雰囲気を決定するみたいなのを試してみようと思いました!!

# 試したこと
#### 1 OpenCVのfullbody検知機?で人物を切り抜いてみる!
最初は、前回の顔切り抜きを応用して、全身の画像を切り抜いてしまおう!と試してみました!
“`python:変更点
IMG_FILE = “haarcascade_frontalface_default.xml”
-> “haarcascade_fullbody.xml”
“`
結果から言うと、うまくいきませんでした笑

なんか、とりあえず長方形に色々切り抜いてくれて…
あいにく、原因がわかるほどの知識はありませんが、とりあえず別の方法を試してみようと…

#### 2 マスク作って、切り抜く!!
[このサイト](http://www.otupy.net/archives/39235274.html)で、クロちゃんを切り抜くために、OpenCVのブラーを使って、こう、明るい、暗いみたいな感じでのマスクを作っていく方法をみてみたのです

元記事を表示

Python3_エンジニアデータ分析試験対策_Part1

本記事は、Python3エンジニア認定データ分析試験におけるチートシート作成を目的としています。
本試験の概要や出題範囲は下記サイトをご確認ください。
チートシートは随時更新していきます。

https://cbt.odyssey-com.co.jp/pythonic-exam.html

# 1.データエンジニアの役割
## 1.1 Pythonについて
Pythonは、データ分析が得意。
機械学習やディープラーニングでもよく利用されている。
Pythonの特徴と苦手分野は以下。

### 1.1.1 Pythonの特徴
プログラムのルールや文法がシンプル
標準ライブラリと外部のパッケージが豊富
データ分析以外にも、幅広い用途で活用できる
オープンソースとして提供されている

### 1.1.2 Pythonの苦手分野
Webデザイン
ゲーム開発など、高速な処理が求められるもの
Webアプリなどのフロントエンド
速度向上などのための低レイヤー処理

### 1.1.3 データ分析に利用されるプログラミング言語
Python
R
Microsoft Excel
Java
Julia

元記事を表示

Python3: A4横 の PDF を A3 の PDF に変換

“`py:pdf_a4_a3_landscape.py
#! /usr/bin/python3
#
# pdf_a4_a3_landscape.py
#
# Aug/08/2022
#
import sys
import PyPDF2
#
# ——————————————————————
def pdf_merge_proc(pdf_reader1):
pages= pdf_reader1.getNumPages()
nn_out = int((pages + 1) / 2)
sys.stderr.write(“pages = %d\n” % pages)
sys.stderr.write(“nn_out = %d\n” % nn_out)
#
pdf_writer = PyPDF2.PdfFileWriter()
#
for icount in range(nn_out):
it = icount * 2
page_obj_a = pdf_reader1.g

元記事を表示

子供のための単語起こしアプリケーション

# 1.はじめに

将来子供が出来たとき仕事の傍ら教育にも力を入れていきたいと思っており、教育用アプリケーションの作成を考えています。
そのため簡単な英単語(言語はどれでもいい)をキーボード上のキーで入力することで、単語を出力してより優しく理解していただけたらいいなと思います。

# 2.手順

## (1)keycode(キーコード)を確認する

キーボード上のキーには、それに対応するコードがあります。
このアプリケーションの作成に当たっては、キーコードが非常に重要になります。
(最初はkeycodeではなく、keysymで試しましたが、keycodeのほうがスムーズに作業が行えました。)
例えば、「A」キーは「65」、「C」キーは「67」となる。

下のURLを参考にしました

http://faq.creasus.net/04/0131/CharCode.html

## (2)キーコードに対応するテキストを表示するには

“`
buffer = tkinter.StringVar()
変数 = buffer.set(文字列)
“`
キーコードに対応する文字を出力するには、

元記事を表示

abstract(抽象化) で継承時のメソッドの入れ忘れを無くそう!

# 以下の2つのクラスを作ると想定します。

“`Python
class Calc1():
def calc(self, a, b):
c = a + b
return c

class Calc2():
def calc(self, a, b):
c = a – b
return c
“`

次のように使う予定です。

“`Python
l = [Calc1(), Calc2(), Calc1(), Calc2()]

for calc in l:
print(calc.calc())
“`

こういった使い方をする場合、2つのクラスには `calc()` メソッドが必須です。

しかし久しぶりに新しい `Calc3` クラスを作る際、`calc` の実装を忘れてしまうかもしれません。

単純なプログラムならエラーを見てすぐに実装を忘れていたことに気付けるかもしれませんが、なるべく想定外の事態は避けたいです。

そんなときには `abstract` を使いましょう!

# abstrac

元記事を表示

クラス変数とインスタンス変数

# クラス変数とインスタンス変数

“`Python
class A():
hoge = ‘HOGE’
def __init__(self):
self.fuga = ‘FUGA’
“`

`hoge` がクラス変数で、 `fuga` がインスタンス変数。

# インスタンス変数を変更するには?

“`Python
class A():
def __init__(self):
self.fuga = ‘FUGA’

def set_fuga(self, value):
self.fuga = value

def print_fuga(self):
print(self.fuga)

a = A()
a2 = A()
a.print_fuga() # >>> FUGA

a.set_fuga(‘FUGA2’)
# または
a.fuga = ‘FUGA2’

a.print_fuga() # >>> FUGA2
a2.print_fuga() # >>> FUGA

元記事を表示

discord.pyでスラッシュコマンドを実装する。

こんにちは。beatbox4108です。

今日は、Discord.py 2.0.0で実装予定のスラッシュコマンドを実際に触ってみて説明したいと思います。

今の所まだ自分がコマンドグループについて理解していないのでそれについての説明はしません。

# Discord.pyのインストール
今の所まだPyPIにはリリースされていないのでgit経由でインストールします。
“`bash
$ pip install git+https://github.com/Rapptz/discord.py.git
“`

# 早速触ってみる
スラッシュコマンドの実装方法は数種類ありますが、今回は`CommandTree`を使った方法で実装します。
“`python3
import discord
import discord.app_commands

token = “” #Your TOKEN
client = discord.Client()
tree = discord.app_commands.CommandTree(client) #←ココ

@client.event
async d

元記事を表示

日本語Pre-Trained BERTを用いた対話Botの作成

この頃機会があったので、私が過去に練習目的で書いた、日本語BERTを使ったAttention付きSeq2Seqモデルのソースコード群をまとめてみました。
練習目的なので性能は推して知るべしですが、同じようなことをされたい方の一助になればと思います。

作成したソースコード、モデルパラメータ、N-gram言語モデルはGitHubにて公開しています。
リンクは記事のまとめに記載しています。

# 目次
1. **概要**
1. **環境構築・事前準備**
2.1. 日本語BERTの準備
2.2. 各ライブラリのインストール
 2.2.1. Juman++ のインストール
 2.2.2. KenLM のインストール
2.3. N-gram言語モデルの構築
2.4. 学習データの作成
 2.4.1. 学習データからの未知語除去
1. **モデル構造**
1. **ソースコード**
4.1. Encoder
4.2. Attenstion
4.3. Decoder
4.4. Model synthesize
4.5. Dataloader
4.6. Scorer
4.

元記事を表示

【Python】フォルダ内ファイルを一括削除する方法

会社業務で提出物を一括ダウンロードするツールを作成しており、
古いファイルが邪魔でダウンロードフォルダからワークフォルダに移動時にエラーが
でたので、その対応で古いファイルがあったら削除する処理を作成しましたので、
ここにまとめます。

## 処理内容

1. ワークフォルダを確認
2. ファイルが存在したら削除

## 1, ワークフォルダを確認

今回使うモジュールは、pathlibです。
ファイル削除だけでなく、ディレクトリ作成、削除などもできるので、
OS処理をPythonで実行するならpathlibを使用するのが良いかと。

osでも良いかと思いますがPython3で書くならpathlibかと。

“`python
import pathlib

check_dir = pathlib.Path(“対象フォルダパス”) # 対象フォルダパスを変数に格納
for file in check_dir.iterdir(): # check_dir内をlsして1ファイルずつファイル名を取得
print(file.name)

“`

上記で対象フォルダ内にある不要ファイ

元記事を表示

CentOS/Amazon Linux2に最新のpython3.xを導入する

事前準備
“`
sudo yum -y update
sudo yum groupinstall “Development Tools” -y
sudo yum install openssl-devel libffi-devel bzip2-devel -y
“`

変数PYTHONMAJORNUMにPythonのメジャー番号を指定する。
いまなら3.9とか3.10など
“`
PYTHONMAJORNUM=3.9
REVISIONNUM=`curl -s https://www.python.org/ftp/python/ |grep ${PYTHONMAJORNUM} |sed “s/.*href=\”${PYTHONMAJORNUM}.//g” |sed “s/\/\”.*//g” |sort -n |tail -1`
cd /tmp
rm -fr Python-${PYTHONMAJORNUM}.*
wget https://www.python.org/ftp/python/${PYTHONMAJORNUM}.${REVISIONNUM}/Python-$

元記事を表示

VSCode PythonのSuggestサジェストが重複duplicate表示する時の解決方法

# 環境
OS: Windows10
VSCode : バージョン1.69.2
LSP: Pylance
Notebook使用

# この症状が出るシーン
.pyファイルと.ipynbファイルを同時に編集しているとき
.pyファイルのみ、.ipynbファイルのみのときは問題ない。

# 解決方法

settings.jsonに`”python.pylanceLspNotebooksEnabled”: true`と記述してnotebookのLSPをpylanceにすることを明示する。

# ※追記

.pyファイル上のsuggestの重複はなくなったものの、.ipynbファイル上のsuggestの重複がなくならない。

Microsoftの`Pylance`からPython標準の`jedi`に変更することにした。

settings.jsonへ`”python.languageServer”: “Jedi”,`を記述

元記事を表示

Ubuntu22.04 Python3.10.6をインストールする

## 概要
リモートサーバのUbuntu22.04にPython3.10.6をインストールします。最初からインストールされているPythonはOS用なので、別のPythonをインストールして使うのが一般的とのことでした。Ubuntu22.04にもともとインストールされていたPythonは3.10.4でした。作業PCはWindows10 Proです。

記事を参考にさせていただきました。
[Ubuntu環境のPython](https://www.python.jp/install/ubuntu/index.html)
[デフォルトでインストールされているPythonを使うのはヤバイ](https://self-development.info/ubuntu%E3%81%AB%E6%9C%80%E6%96%B0%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEpython%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

元記事を表示

[備忘録]サーバー上で起こった例外をまるごとハンドリングしてDiscordに送る

# コード

“`Python:main.py
import json
import os
import traceback
from urllib import request
import dotenv
dotenv.load_dotenv()

DC_WEBHOOK_URL = os.getenv(‘DC_WEBHOOK_URL’)

def standalone_discord_traceback_messenger(): # もっと良いネーミング募集中
req = request.Request(
url=DC_WEBHOOK_URL,
headers={‘User-Agent’: ”, ‘Content-Type’: ‘application/json’}
)

data = {
‘content’: ”,
‘embeds’: [{
‘type’: ‘rich’,
‘title’: traceback.format_exc(0)[:-

元記事を表示

Tensorflowで自分に合った彼女を探すCNNを実装しようとしてみた(第二回)

# 目的
##### [前回の実験](https://qiita.com/kangaroo-san/items/89548805795c1efbdc37)で出た反省
・人物切り抜くスクリプトを導入して背景に左右されないようにすること
・データ絶対偏ってる…もっと偏りのないデータの軸を作ること
・服だけじゃなくて、もっと顔だけとか、細かい要素に分けるべきか?

これらをもとに、とりあえず顔のタイプを分類わけするコードから書いてみた!!

# 顔の分類
顔の分類は、恋愛系のYouTubeで上がりがちなカワイイ系vsワイルド系を参考に作っていきました!

|性別|wild|cute|
|:–:|:-:|:-:|
|男|ワイルド系|カワイイ系|
|女|ギャル系|カワイイ系|

# データ収集
最初はHOT PAPPER BEAUTYからDQNがやってそうな髪型と量産型がやってそうな髪型を検索してスクレイピングしてみてたんだけど、データは重複しまくるし、大体みんな同じ顔だし…
と言うことで、芸能人の写真を使ってやることにしました!!

芸能人の選抜は以下のサイトを利用
[ワイルド系男子](ht

元記事を表示

OTHERカテゴリの最新記事