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

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

【python】勉強メモ 速習Flask②

## 1. はじめに
今回は、**SQLite**を使い投稿したデーターをDBに保存するところまで行いたいと思います。

## 2. 全体の流れ
1.事前準備(SQLite3のインストール)
2.共通化
3.投稿内容のDB登録(今回のメイン)
4.DB登録処理(今回のメイン)

### 1. 事前準備 SQLite3のインストール
1. [SQLite3 ダウンロードページ](https://www.sqlite.org/download.html)へ移動。

2. 「Precompiled Binaries for Windows」まで移動し、
「sqlite-tools-win32-x86-3360000.zip」をダウンロード
![SQL-1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3014502/e031d10e-4d40-6ac9-bd36-b7dab17d1ee6.png)

3. ダウンロードしたら、任意の場所でZIPファイルを解凍。
4. 解凍すると、sqldiff.exe

元記事を表示

Yt-dlpをPythonから実行し、時間指定した動画をダウンロードする

この記事は呉高専アドベントカレンダーの24日目の記事です。
https://adventar.org/calendars/7908
呉高専を卒業し、大学に3年次編入してから2年目の乗算記号と申します。
普段はUnityでゲームを作ったり、卒研でPythonいじったりしています。
初めて記事を書くため、読みづらい部分はご容赦ください。

# yt-dlpとは

yt-dlpとはyoutube、twichといった動画配信サービスから高画質・高音質な動画をダウンロードできるプログラムです。ちなみにあのGitHubから追放されかけた(実際された)ことで有名なYoutubeDLからの派生プロジェクトになります。使用目的としては機械学習のような大量の動画や音源が必要なときに大変重宝されます。基本的にはcliから使用しますが、pythonスクリプト上からも動作できます。

https://github.com/yt-dlp/yt-dlp

# yt-dlpで時間を指定した上でダウンロードする。
ある動画を時間指定してダウンロードする関数を定義して使用してみます。
ソースコードは以下のようにな

元記事を表示

【Mac M1】applescriptを使って、全取引先に年末の挨拶メールを、一瞬で個別送信する方法。

<愚痴>
まあ、Windows環境用に、PythonとWin32comを駆使して書くならば、需要はあるのでしょうが、自分の環境がMac環境なので、使えないApplescriptを駆使して、書きます。笑

<やりたい事>
タイトルが、「◯◯様、年末のご挨拶【海山商事、山田太郎】」と言う個別メールを、全取引先(300社以上)に、一斉送信したい。
(一般的には、BCCメールでやるのであろうが、「宛先多数の為、BCCメールで送信します。」とやると、経験上、誰も読まないし、第一、失礼だと思っております。)

内容は下記。

====
◯◯様、

いつも大変お世話になっております。
山田太郎です。
早いもので、本年も残りわずかとなり、年末のご挨拶をさせていただく時期となりました。

メールにて、恐縮ではございますが、年末のご挨拶とさせて頂きたいと思います。
良いお年をお迎えください。

山田太郎
====

<手順 1>
下記の様にで、送信したい相手先書いた.csvファイルを用意する。
A列にお客様の名前、B列にメールアドレス。
ファイル名は、recipient_list.csv

![名称未設

元記事を表示

Sony Neural Network Librariesを使ってハマったこと備忘録

Sony Neural Network Librariesを使ってハマったので憂さ晴らしの投稿
先に言うと問題は何も解決してません。

# なにはともあれ環境

>Windows10
>Python v3.10 on VScode
>nnabla 1.32.0
>nnabla-ext-cuda110 1.32.0

# 症状
Sony Neural Network Librariesを自前で構築したPython環境に`pip install nnabla`して使おうとしたが、次のようなことを言われ、にっちもさっちもいかなくなった。

~~~
(base) python.exe “nnabla_1.py”
2022-12-23 16:09:33,297 [nnabla][INFO]: Initializing CPU extension…
Traceback (most recent call last):
File “nnabla_1.py”, line 9, in
import nnabla as nn
File “C

元記事を表示

leetcode5 を解いてみた

# 方針
自分で1回はプロセスを考える。解けなくてもOK。
解けなかったときは、振り返ることが可能な程度まで言語化する。
※考え方おかしくない?というのがあればご指摘くださいまし。
※解けなかった、苦戦したものを記事にする。

# 問題紹介

問題は以下URL参照

https://leetcode.com/problems/longest-palindromic-substring/description/

## 最初の考え
– スマートな解法わかんないっぴ…
– とりあえず愚直にやってみるっぴ…

“` 初回.py
class Solution:
def longestPalindrome(self, s: str) -> str:
tmp = []
res = “”
length = 0

for i in range(len(s)):
tmp = []

for j in range(i,len(s)):
tmp.a

元記事を表示

レガシーなシステムのコードを勉強がてら、自分なりに最適化してみる

# Perlは好きですか?

こんにちは。自分は、Pythonを主言語として、いつも書いていますが、
今回、自社システムを学ぶためにも書かれているコードを勉強しつつ、コーディングしてみた話です。

システムは、かれこれ十数年クラスの凄いシステムです。
当時、師匠が一人で作ってくださり、今もなお現役として稼働し続けているシステムで、
全てPerlで書かれているCGiとなります。
セキュリティ的な面はさておき、コード自体は、特にPerlっぽさもないコーディングに仕上がっており、今後使われるかは不明です。
また、これら勉強を通して最も個人的にためになった箇所だけを抜粋し、こちらに投稿させて頂きます。

それでは、始まります。
###### ※なお、公開しているコードは一部を抜き出したもので、不完全であり、コピペでは動きません。 

## IPカメラ(ネットワークカメラ)から画像を取得したい。

弊社システムでは、必須な項目であり、現場のカメラから画像を取得し、システム上に表示させなくてはイケません。
そこで、弊社のシステムでは登録された情報からカメラに直接アクセス、または間接的に画像を拾って

元記事を表示

scratch3.0でAWSを操作してみたかった(できなかった)

# 前置き

これは[株式会社SUPER STUDIO Advent Calendar 2022](https://adventar.org/calendars/8255)の19日目の記事です。

せっかく機会を得たので、Qiitaの記事を久しぶりに書いてみようと思って自分のアカウントを見たら、前に投稿したのが2014年でした。恐るべき光陰。
以前の記事の頃とは自分の境遇も変わったので、新たな気持ちで記事を作ってみようと思います。

技術トピックで自分がよく読む記事としては、筆者の経験を踏まえたうえで他の人の役に立つようなナレッジを共有しているものと、役に立つかわからないことに情熱を注いでいるようなものと、のどちらかが好きです。
今回記事を作るにあたり、他の人の役に立つものも一瞬考えたのですが、今回は後者で行きます。

### 前提条件

今回の記事の筆者の環境です。

* Windows 10 Pro
* Ubuntu 20 on WSL2

あと、AWSアカウントを持っていることが前提です。

# やりたいこと

ノーコードとかいうのが流行っているらしいじゃないですか。ものとして本

元記事を表示

paizaラーニング「辞書順に出力 2 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__string_dictionary_step2
#### 私の解答
“`Python3
li = (input().split())
sorted_li = sorted(li)

for ele in sorted_li:
print(ele)
“`
#### 解答例1
“`Python3
S = [0] * 5
values = input().split()
for i in range(5):
S[i] = values[i]

sorted_S = sorted(S)

for s in sorted_S:
print(s)
“`
#### 解答例2
“`Python3
S = [0] * 5
values = input().split()
for i in range(5):
S[i] = values[i]

S.sort()

for s in S:
print(s)
“`

元記事を表示

paizaラーニング「辞書順に出力 1 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__string_dictionary_step1
#### 私の解答
“`Python3
A = [“zaipa”, “izapa”, “paiza”]

for a in sorted(A):
print(a)
“`
#### 解答例
“`Python3
li = [“zaipa”, “izapa”, “paiza”]
sorted_li = sorted(li)

for ele in sorted_li:
print(ele)
“`

元記事を表示

paizaラーニング「i 番目の出力 4 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__string_i-thinput_step4
#### 私の解答
“`Python3
n, m, l = map(int,input().split())
values = input().split()
print(values[n-1][l-1])
“`
WolfMoon先生の解答例を参考にさせていただきました。
#### 解答例
“`Python3
values = input().split()
N = int(values[0])
M = int(values[1])
L = int(values[2])

S = [0] * M
values = input().split()
for i in range(M):
S[i] = values[i]

print(S[N – 1][L – 1])
“`

元記事を表示

【Python】csvから読み込んだ文字列が一致しないとき

# 結論
csvを読み込む時,エンコーディングで`’utf-8-sig’`を指定する.
“`python:例
with open(file,encoding=’utf-8-sig’) as f:
csvreader = csv.reader(f)
“`
csvを読み込んだとき先頭に`\ufeff`がある場合も同じ対処でOK.

# 発端
csvにある項目を一気に`grep`的に検索したかった.
テストで動かしたとき,明らかに一致している文字列があるのに検出してくれなかった.
シェルスクリプトで書く方が楽な人は多いかもね…
“`csvs:search_word.csv
aaa
bbb
ccc
“`
“`txt:test.txt
aaajfdo
fewapjg
bbbdiaf
“`
“`python:search.py
from glob import glob
import csv
import re

target_csv = “search_word.csv”
target_path = “./*” #カレ

元記事を表示

【python】勉強メモ 速習Flask①

# Flask勉強メモ

コピペしていけば、仮想環境作成からブラウザでFlaskの実行を確認できる手順となっております。

## 実行環境
– Windows10 Pro
– Python 3.11.0

## ディレクトリ構造
“`
pydir/
┣myproject/
┣venv/
┣hello.py
┣templates/
┣hello.html
“`

## 全体の流れ
1. 仮想環境作成
2. 仮想環境有効化
3. 仮想環境内で、Flaskインストール
4. appファイル作成
5. appファイル起動(Flask起動)
6. ブラウザで確認
7. Flaskの終了
8. 仮想環境の終了

### 1. 仮想環境作成
**注)** コマンドは、VScode上のPowershellから実行しております。
**注)** コマンドは、myprojectフォルダで実行してください。

`.venv`という名前の仮想環境を作成
“`
python -m venv .venv
“`
### 2.仮想環境の有効化
仮想環境を有効化
“`
.ve

元記事を表示

Pythonで指定した範囲のスクリーンショットを撮る

# 概要
みんな大好き大乱闘スマッシュブラザーズ(以下スマブラ)!!
私事ながら,スマブラ配信をしています.[チャンネル登録お願いします!](https://www.youtube.com/channel/UCKys_FIMcKfIn5L4HOyy0vQ)
スマブラ×機械学習でなんかできないかなー,と思っていたところこんな記事を発見しました.
[画像認識でスマブラの戦績を自動で作成するツールを作ろう](https://note.com/kelp168/n/nf717de3a2d22)

最終的に何を作るかは置いといて,面白そうだしとりあえずやってみよう!
配信画面からスマブラのスクリーンショットを撮る→画像認識でなんかする
ざっくりこんな感じで進めます.
今回の目標は範囲を指定してスクリーンショットを撮ることです.
配信画面全体ではなく,
![screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3073654/77ff4522-9f7f-b4d0-bd3a-693deabb789d.pn

元記事を表示

Pythonでクリップボードにファイルをコピーする方法 (Windows)

:::note warn
**Windowsのみで動作します
PythonからC# .NETを呼び出しているだけなので速度が若干遅いです**
:::

## 筆者の環境
**OS: Windows 11 Pro 22H2 22621.963
Python: 3.10.6**

## 事前準備
**PythonからC# .NETを呼び出すためにpythonnetをインストールします**
“`
pip3 install pythonnet
“`

## 実際に書いていく
**pythonnetのclrをインポートします**
“`python:main.py
import clr
“`

**.NETから必要なクラスを呼び出すための準備をします**
> .NETのクラスをインポートするには先にclr.AddReference()でネームスペースを参照に追加しておく必要があります
“`python:main.py
clr.AddReference(‘System.Collections.Specialized’)
clr.AddReference(‘System.Windows

元記事を表示

深層学習の概要① 備忘録

## 深層学習の範囲
深層学習(Deep Learning)は、多くの層を持つ深いニューラルネットワークを使って学習を行う。特に、何層からが深層学習というような定義はない。
![深層学習の範囲](https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r01/image/n1302010.png)
[総務省ホームページより](https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r01/html/nd113210.html)

## 神経細胞について
![Wikipedia(神経細胞)](https://storage.googleapis.com/sitest-wp/blog/wp-content/uploads/2016/11/83761ecb0aeb6b20c63e30ffacf67776.jpg)
[Wikipedia(神経細胞)より](https://ja.wikipedia.org/wiki/%E7%A5%9E%E7%B5%8C%E7%B4%B0%E8%83%9E)

元記事を表示

Pythonでネストされた辞書型dictデータの中身のデータ型を確認する

# はじめに
dict型というよりむしろxmlデータの構造をパッと確認したくなってしまったのが事の発端。

# xmlファイルを辞書型で読み込み
サードパーティモジュールである、`xmltodict`をインストールする

https://pypi.org/project/xmltodict/

以下、XMLファイルを読み込んでxmltodictでパースした状態
“`python
#適当なファイルを読みたい場合
import xmltodict
with open(filename, encoding=’utf-8′) as fp:
xml_data = fp.read()
dict_data = xmltodict.parse(xml_data)
print(dict_data)

#とりあえず手っ取り早くサンプル。東京都の週間天気予報
import requests
import xmltodict
r=requests.get(“https://www.data.jma.go.jp/developer/xml/data/20221220014352_0_VPFW50_13

元記事を表示

MIDIキーボードをゲームのコントローラーにしてみた話

## 音が出せるだけじゃないはず
MIDIキーボードは音楽活動に使われるイメージが大きいですが、仕組みを考えるともっと幅広い使い方ができるように思えます。一つ一つの鍵盤がスイッチだと考えれば、押したらオン、離せばオフのようなシンプルな仕組みと捉えられるはずです!
そこで今回は、実際にPythonを使ってMIDIキーボードの入力を取得して、いろいろと遊んでみました。

## MIDI入力を取得する
まずはとにかく入力を見てみたいですよね。どんな仕組みでキーボードが動いているのか確認してみます。

### pygame.midi
`pygame.midi`を使うと、PythonでMIDI入力を取得できるらしいです。
pygame自体はPythonではおなじみのゲーム制作ライブラリですが、その中にmidiを取得できる機能が付属していました。早速動作確認。
“`python
import pygame.midi as m

### midiキーボードを定義
m.init()
i = m.Input( m.get_default_input_id() )

while True:
i

元記事を表示

Python のデコレーターで関数以外を返した場合

デコレーターで関数以外を返した場合はどうなるのかを確認します。

# 結論
* エラーは起きない
* 受け取った関数名で、渡した値が定義される

“`python
def decotator(func: Callable):
return ‘test’

@decorator
def test_func():
return 1

>>> test_func
‘test’

# メソッドの場合も同様
class Test:
@decorator
def test_method(self):
return 1

>>> Test.test_method
‘test’
“`

これを利用して`callback`をデコレーターでラップしてオブジェクトを定義する、ということをやってみました。
Djangoの`ModelForm`のようにCSVを扱える自作nパッケージ`model-csv`で以下のような使い方を実装してみました。

“`python
# 今までの使い方
class BookCsv(ModelCsv):
# Column

元記事を表示

n個以上欠損値があるカラム(列)を削除

# 概要
pandasのデータフレームで欠損値がn個以上あるカラム(列)を削除したい場合の方法。

# データを用意
“`Python
import numpy as np
import pandas as pd

data_path = “path/train.csv”
df = pd.read_csv(data_path)
“`

# 方法1
dropna()を使う方法。
dropna()は欠損値ではない要素の数がn個以上ある列(行)を残し、それ以外の列(行)を削除する。
よって、欠損値がn個以上ある列を削除したい場合は、行数を取得して、(行数-n)をdropnaに渡してやれば良い。
以下は、n=5の場合。
“`Python
n_samples = len(df)
n_thresh = n_samples – 5 # 行数 – n
df_null_rm = df.dropna(thresh=n_thresh, axis=1)
“`

# 方法2
各列の欠損数を算出して、欠損数がn個より少ない列だけ抜き出す方法。
isnull()で欠損値か判定し、sum()で列ごとの欠損数

元記事を表示

【d.py】ココフォリア形式のログをどどんとふ形式のログに変換する

# 概要
discord.py用のcogコードです。
`main.py`から`load_extension`する事を想定しています。
`main.py`の作例は[こちら](https://qiita.com/HikaruR/items/e518441cbe5a9a6acd77)

## バージョン情報
Python 3.8.12
discord.py 2.1.0

# 実装される機能
TRPGセッションツール[ココフォリア](https://ccfolia.com)で出力されるログを、hybridコマンドを通して古き良きどどんとふ形式のログに変換します。
[どどんとふ全タブ用コンバータ](http://dummy.flop.jp/trpg/conv/)を通した後に文字化けしている状態を修復するhybridコマンドも同梱しています。

“`python:html_conv.py
import discord
from discord.ext import commands
import re #正規表現を扱うモジュール
import typing #typing.Optional解禁

元記事を表示

OTHERカテゴリの最新記事