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

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

40代おっさんFastAPIを勉強する②

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## postメソッド

Pydantic は、Python の型アノテーションを利用して、実行時における型ヒントを提供したり、データのバリデーション時のエラー設定を簡単に提供してくれるためのライブラリです。

“`python
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel): # BaseModelを継承してItemを作る
# データの構造を定義
name: str
description: Optional[str] = None
price: int
tex: Optional[float] = None

app = FastAPI()

@app.post(“/item

元記事を表示

[Python] PyAutoGUIをimportした時にtkinterの見た目が変わる事

### 問題
PyAutoGUIをimportした時にtkinterの見た目が変わった。
importすると、しない時と比べてくっきり(小さく)みえるようになる。
### 解決
PyAutoGUIに含まれる
“`Python
try:
ctypes.windll.user32.SetProcessDPIAware()
except AttributeError:
pass
“`
が問題。
逆に、くっきり(小さく)したかったら上記のコードを追加すればよい。

元記事を表示

PythonとYouTubeAPIで急上昇の動画のデータを取ってくる

### やること
YouTubeAPIで急上昇動画のURLを取ってくる。

まず、GoogleCloudPlatformに行き、プロジェクトを作成して、YouTube Data v3というAPIを有効化します。「認証情報」をクリックして「認証情報」を作成を選び、「APIキー」を選択します。出てきたキーはコピーして取っておきます。
“`Python
import googleapiclient.discovery

def getYouTubeTop10():
API_KEY = “あなたのAPIキー”
youtube = googleapiclient.discovery.build(
“youtube”, “v3″, developerKey=API_KEY)
request = youtube.videos().list(
part=”snippet,contentDetails,statistics”,
chart=”mostPopular”,
maxResults=10, # ここで個数を

元記事を表示

『サイバーセキュリティプログラミング第2版』の読書メモ (2)

ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。

https://www.oreilly.co.jp/books/9784873119731/

# 3.2 ICMP のパース より

P62 UDP データグラムをサブネット全体に送信する Python コードについてのメモ

udp_sender 関数を抜粋
“`python
import ipaddress

# スキャン対象のサブネット
SUBNET = ‘192.168.1.0/24’

# ICMP レスポンスのチェック用マジック文字列
MESSAGE = ‘PYTHONRULES’

# マジック文字列を含んだ UDP ダイアグラムをサブネット全体に送信
def udp_sender ():
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sender:
for ip in ipaddress.ip_network(SUBNET).hosts():
sender.sendto(byte

元記事を表示

お客様の中に24時間監視体制で調子の悪いwimaxを再起動できるエンジニアの方はいらっしゃいませんか!!!

# 結論
[このリポジトリ](https://github.com/Mkamono/wimax-restart)をcloneして、`.env`ファイルに`WIMAXPASS=あなたのクイック設定webのパスワード`を書いて`docker-compose up`すればできるよ

# はじめに
一ヶ月ほど前からうちのwimax home L12 の調子が悪く、どうも困っていました。
症状としては、LEDランプは正常を示しているがインターネットにはつながらない。しかしスマホやPCからは接続しているという表記になっている。「インターネットなし」との文言が出る、といったものです。
恒常的にこんな感じなのであればすぐサポート連絡なりして強く訴えられるんですが、2日に一回程度、再起動すれば治るといった頻度で対応してもらえるのか、そして今後ファームウェアの更新で直るんじゃないかと思い、とりあえずプログラムを書いてみました。このプログラムは問題の対処と同時に原因究明を目的にしているので、データの解析もできるようにしています。(現在データ収集中)

# フォルダ構成
“`
.
├─docker-comp

元記事を表示

PythonでSpeechRecognitionを使ってリアルタイム文字起こし【Windows】

# 概要

GoogleのSpeechRecognitionというライブラリを使ってリアルタイム文字起こしをしました。
用途としてはリモート会議や授業での音声をリアルタイム文字起こしして、議事録作成やメモの省力化などに使えると思います。

## 利用するライブラリ
– リアルタイムで文字起こしするライブラリ:SpeechRecognition
– パソコンからの音声出力をキャッチするライブラリ:PyAudio

“`
wave
time
datetime
speech_recognition
pyaudio
“`

### ライブラリの入れ方
“`pip install SpeechRecognition“`で入れられます。
注意点は、ライブラリのインストールの時とインポートする時とでスペルの大文字小文字が異なる点です。
– インストールの時:大文字小文字で”_”が不要:“`SpeechRecognition“`
– インポートの時:全部小文字で”_”が必要:“`speech_recognition“`

### デバイスから出力される音声を使えるようにするための下

元記事を表示

40代おっさんFastAPIを勉強する

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## getでFastAPIを動かす

“`python
from fastapi import FastAPI

app = FastAPI()

@app.get(“/”) # getで / にアクセスがあったら下の関数を実行
async def index(): # asyncで非同期処理を実装できる
return {“message”: “利樹大好き”}
“`

サーバー起動(main.py)

“`bash
uvicorn main:app –reload
“`

{“message”:”利樹大好き”}

となっていれば成功

local hostに`/docs`をつけると
ドキュメントが見られる。
Swagger UIが使われている。
FastAPIはSwagger UIを自動生成している。

local hostに`/redoc`をつけると
redocベースの

元記事を表示

Pythonで祝日を判定

#### 0.初めに
国内株などに投資をしていると平日だけ実行したいプログラムが思い浮かぶ。
Windows10 のタスクスケジューラは祝日に実行しない設定が存在しない。
そこで祝日のみをピンポイントで弾く必要性を感じた。

#### 1.jpholidayをインストールする
コマンドプロンプトで
`pip install jpholiday`
を入力

#### 2.サンプルプログラム
holiday.pyは祝日のとき終了するプログラム
exit()の下に(インデントを戻して)実施したいプログラムを記述すればよい
“`python:holiday.py
import datetime
import jpholiday

if jpholiday.is_holiday(datetime.date.today()):
print(“Today is a holiday, so this program will not work.”)
exit()
“`

元記事を表示

PyQt6Creatorにて作成した.uiファイルを.pyファイルへ変換

# 環境
* Windows 10 Pro
* Python 3.1.0
* Qt Creator 8.0.2
* Pyside6 6.4.0
* PyQt6 6.4.0
* Qt6 6.4.0
コマンドで以下を入力
“`command:Qt6
uic -g python form.ui > ui_form.py
“`
“`command:Pyside6
pyside6-uic form.ui > ui_form.py
“`
“`command:PyQt6
pyuic6 form.ui > ui_form.py
“`
どれも同じ結果になります。
formの部分は各々のファイル名に書き直してください。
忘れたときにどうぞ。

# 参考ページ
* https://doc.qt.io/qt-6/uic.html
* https://doc.qt.io/qt-6/designer-using-a-ui-file-python.html

元記事を表示

[Django]settings.pyでよく見るパラメータまとめのメモ

# はじめに
業務でDjangoを使っているのですが、
あまり設定ファイルをいじることがないので、この際パラメータにどんなものがあるか調べてみました。
大体は名前から意味が予測つくようになっていると思いますが、注意点なども含めて書き残しておきたいと思います。

# デフォルトで存在するパラメータ
## BASE_DIR
・プロジェクトの基となるフォルダ
・`django-admin startproject projects-name`で作成したプロジェクトの一番上位のフォルダ
## SECRET_KEY
・Django のインストールごとに設定される個別の秘密鍵
・暗号化やハッシュ化で用いられる秘密鍵であり、Djangoプロジェクト作成時にランダムに生成される
## DEBUG
・本番環境では必ずFalse
・開発環境でデバッグが必要な時にTrueにしておく。エラーが起きたときに、詳細なエラー画面を表示してくれる。ただしKEYやPASSなどの重要情報はセキュリティのため表示されないようになっている。
・実行したクエリを全て記憶しておくので、メモリへの負荷は高い
## ALLIWED_

元記事を表示

VSCodeにてDocker(CentOS7)のFlask環境を構築(venv使用)

# 環境
macOS Monterey
VSCode 1.73.0
docker desktop 4.13.1
docker Engine 20.10.20
docker Compose v2.12.1
Python 3.9.15
Flask 2.2.2

# DockerにてCentOS7立ち上げ

Dockerインストール
https://qiita.com/suzukiti/items/391bfce352ba94ad3f0d#docker%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

なんか以前自分が書いたみたいでした。
VSCodeのDev containers拡張機能を使います。(これも上の記事に書いてあった)

## コード(結論)

“`json:devcontainer.json
{
“name”: “sample_flask_app”,
“dockerComposeFile”: [“./docker-compose.yml”],
“service”: “app”,
“workspac

元記事を表示

Deep Learning from scratch 2にBahdanau Attention

 RNN (GRU) を使った Attention 付きの seq2seq モデルのニューラルネットワークについてです(実行確認済のソースコード有)。この記事に掲載するソースは、斎藤康毅さんの書いた「ゼロから作る Deep Learning 2 自然言語処理編」の第8章で提示されたソースにクラスを付け加えて、Bahdanau attention を使えるようにするものです。斎藤さんも、Attention については、いろいろな方法があると著書で書かれています。その一つのバリエーションです。Bahdanau attention については、tensorflow のページ

https://tensorflow.classcat.com/2019/04/07/tf20-alpha-tutorials-sequences-nmt-with-attention/

で使われているものを勉強して実装しました。

 付け加えるクラスは

  • AttentionSeq2seq2 クラス
  • AttentionEncoder2 クラス
  • AttentionDe
元記事を表示

DataFlowのパイプラインでCerberusの機能を使って、csvをチェックしてみた。

# はじめに
現在業務でGCPのDataFlowを使ってデータパイプラインを構築しており、CSVファイルがアプリケーションから来るのですが、たまにユーザが手で直したりなんてことがあるので、バリデーションして、不適当な行があれば省いて、後続のデータパイプラインに流したいと思っています。(上流の運用なおしたいのはやまやまですが。。。)
そこでCerberusというバリデーションライブラリがあったので、いっちょやってみようと思った次第です。

# Cerberusとは
Pythonのデータ検証用のライブラリで
「Cerberusは、強力でありながらシンプルで軽量なデータ検証機能をすぐに提供し、簡単に拡張できるように設計されているため、カスタム検証が可能です。依存関係はなく、Python 2.7から3.8、PyPyおよびPyPy3まで徹底的にテストされています。」とのこと
(引用元https://docs.python-cerberus.org/en/stable/index.html)

簡単に機能と使い方を説明すると、データとチェック用のファイルを比較して、OK/NGを判断してくれます。

元記事を表示

ubuntuでtkinterが使えなくなった(泣)

## はじめに
初カキコども
Ze;roPです〜
最近pythonにお熱で難しいことはよくわからないけど、適当にツール作って遊んではそれを仕事で活かしたりして遊んでます。
さて、コマンドラインツールやマクロのようなものばかり作っていて、ちょっとユーザーに優しい感じのツールも作れたらいいかも〜って思ってtkinterを使おうとインストールして、リファレンスのhello worldを実行しようとした矢先、それは起きました。。。
## 突然のエラー
“`
$ python3 -m tkinter
Traceback (most recent call last):
File “/home/USER/.pyenv/versions/3.10.7/lib/python3.10/runpy.py”, line 187, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File “/home/USER/.pyenv/versions/3.10.

元記事を表示

【OpenCV】2つの画像の類似点の座標(X,Y)をndarray形式の変数に格納する【Python】

[参考文献:opencv画像をマッチングする](https://wonderfuru.com/opencv%E3%81%A7%E7%94%BB%E5%83%8F%E3%83%9E%E3%83%83%E3%83%81%E3%83%B3%E3%82%B0%E3%82%92%E3%81%99%E3%82%8B/)
# はじめに
[前回のQiitaの記事](https://qiita.com/matttchan/items/0bf30b808b267222d881)ではAkazaのおかげで特徴点マッチングを実現することができた。今回は、その特徴点の座標を取得し、より数学的に画像を扱えるように加工していく。

**P.S.この記事はやや深夜テンションで執筆しているので読み進めると気分を害されるかもしれません。耐えてください。**

# 環境
OS : Ubuntu 20.04 LTS (最新バージョンも対応してるかも)
Python : 3.8.10
OpenCV-Python : 4.6.0

# きらきら復習たいーむ
## Pythonの文法覚えてるかなチェック
最終的にaの変数はどうなるか

元記事を表示

【Pyaudio】を使って録音と再生をする(Windows)

# 概要
Windowsのデバイスから出力される音声を録音するコードです。

リモート会議の音声の録音などができます。筆者が以前書いた「 [WindowsでWhisperとpysummarizationを使って音声データの文字起こしと要約させてみた](https://qiita.com/TEST_KEN/items/562d51d79da28f055544) 」と組み合わせると、録音した会議を自動で文字起こしし、かつ要約もできるようになると思います。

## 利用するライブラリ

– 録音に使うライブラリ:『pyaudio』というライブラリを使います。

“`
datetime
wave
time
pyaudio
“`

### ライブラリの入れ方

“`pyaudio“`の入れ方は“`pip install pyaudio“`でできます。

### デバイスから出力される音声を録音するための下準備

具体的なコードを掲載する前に、デバイスから出力される音声を録音するためには下準備が必要です。具体的にはループバック録音をできるように設定します。ループバック録音の設定の仕方

元記事を表示

WindowsでWhisperとpysummarizationを使って音声データの文字起こしと要約させてみた

# 概要
タイトル通り、音声データ(今回はwavファイル)を日本語に文字起こしさせて、文字起こしした文章をpythonで要約してみます。

想定している使い方としては、オンライン会議での簡易的な議事録作成などに使えればと思って作成しています。「会議での音声を録音して、それを文字起こしさせたいなー。できればその文章を要約してくれると助かるなー」というなまけ心が発動しました。

要約の方法は『抽出型』と『抽象型』の2つがありますが今回は“`pysummarization“`という神ライブラリを使うので、後者の抽象型の要約の仕方で実装します。
(抽出型の代表的なライブラリとして“`sumy“`というものがありますが今回はサクッと要約させたかったので“`pysummarization“`を使っています)

## 利用するライブラリ
– 文字起こしに使うライブラリ:OpenAIが公開したオープンソースの音声認識ソフトウェアである『Whisper』を使ってみます。
– 要約に使うのは、『pysummarization』というライブラリを使います。

今回利用しているライブラリをすべて

元記事を表示

【ORM】SQLAlchemyを使ってみた感想

# はじめに

最近はPythonを書いてます。どうも僕です。

PythonでDBを扱う際、`SQLAlchemy`というORMが選択肢に入ってくるかと思います。

今回はこいつをある程度触った感想なりを書いていきます。

# 感想
使ってみた所感を。
\
**「んーーーー微妙。。。。」**
\
といった感じ。
(なんかいろいろ言われそう怖い…)

なにが微妙な点なのか。

もちろん、いい点もあり、なんとも言えない部分もあります

# 基本的な使い方

SQLAlchemyでは、DBへの接続を`session`として扱い、クエリを実行します。

“`python:sessionの定義
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

# mysql の設定
DATABASE = ‘mysql://%s:%s@%s:%s/%s?charset=utf8’ % (
“認証情報”
)

ENGINE = cr

元記事を表示

[Python]テキストファイルから特定の行を取得

# 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [サンプルテキストファイル](#サンプルテキストファイル)
– [行番号で指定した行を取得](#行番号で指定した行を取得)
– [行ごとに分割したリストから取得](#行ごとに分割したリストから取得)
– [linecacheで取得](#linecacheで取得)
– [最初の行と最後の行を取得](#最初の行と最後の行を取得)
– [最初の行](#最初の行)
– [最後の行](#最後の行)
– [特定の文字列が含まれる行を取得](#特定の文字列が含まれる行を取得)
– [開始行と終了行を文字列で指定し、その間の行を取得](#開始行と終了行を文字列で指定しその間の行を取得)
– [参考](#参考)

# はじめに
– 今回はpythonでテキストファイルから特定の行を取得してみたいと思います。
– 以下の環境で動作確認をしています。
– python: Python 3.11.0
– os: macOS Ventura 13.0
# サンプルテキストファイル
以下、今回用意したサンプルテキストファイルです。

元記事を表示

[Python]ファイルの読み書き操作

# 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [ファイルの書き込み](#ファイルの書き込み)
– [open関数でファイルを開く](#open関数でファイルを開く)
– [with文でファイルを開く](#with文でファイルを開く)
– [書き換えと追記](#書き換えと追記)
– [改行を入れる](#改行を入れる)
– [writelinesメソッドでリストを書き込む](#writelinesメソッドでリストを書き込む)
– [ファイルが存在しない場合のみ新規作成して書き込む](#ファイルが存在しない場合のみ新規作成して書き込む)
– [print関数で書き込む](#print関数で書き込む)
– [ファイルの読み込み](#ファイルの読み込み)
– [readメソッドで全文を読み込む](#readメソッドで全文を読み込む)
– [readメソッドで文字数を指定して読み込む](#readメソッドで文字数を指定して読み込む)
– [tellメソッドで現在位置を取得](#tellメソッドで現在位置を取得)
– [seekメソ

元記事を表示

OTHERカテゴリの最新記事