- 1. 神エクセルをHTMLに!Python編 その2
- 2. pythonのモジュールを実行するときのコマンド
- 3. [OCR]情景文字認識(Scene Text Detection) pythonライブラリー
- 4. 【Python】マイグレーションツールAlembicを触ってみる
- 5. コマンドプロンプトで実行するPythonスクリプトにおけるANSIカラーの出力
- 6. Gradioとは? Pythonで機械学習Webアプリケーションをサクッと作ろう!
- 7. TelloConsole ビギナーガイド:Python の環境構築
- 8. TelloConsole ビギナーガイド:サンプルコードの実行
- 9. 【解決法】ModuleNotFoundError: No module named ‘chromedriver_binary’
- 10. ブロックチェーンを実装してみた & 改ざんを試みた
- 11. AtCoderでよく使いそうな関数メモ
- 12. Flaskで立てたサーバーが外部からアクセスできない場合に確認すべきこと
- 13. 【解決法】Error: pg_config executable not found.
- 14. Python(3.10.7)をWindowsにインスコするの巻
- 15. Python & ビット演算でドドスコしてみた
- 16. 【Pytorch】MNISTのGAN(敵対的生成ネットワーク)を実装する
- 17. pythonで対数グラフ(それと聴覚閾値)
- 18. マイク入力音声をリアルタイムでFFTしてグラフ化する
- 19. Flaskアプリケーションのセッション問題
- 20. [Python][Tips] 処理時間の計測
神エクセルをHTMLに!Python編 その2
# はじめに
神エクセルとか、ネ申エクセルとか、方眼紙エクセルとか呼ばれる評判の悪い奴がありますよね。本記事は、そいつをHTML形式のフォームにするシリーズ2回目です。pythonのopenpyxlを使用します。
[前回の記事](https://qiita.com/yoho/items/571902c129cce9d12e62)はこちらです。
## 今回
前回は、エクセルの行と列の幅を取り出すのに、結構ハマったので記事にしたのですが、その後はまりどころはほとんどなく、完成してしまいました。pythonはそんなに得意というわけでもないので解説記事にするのは躊躇します。どうしようかと考えていましたが、面倒になったので解説なし!でコードを貼り付けておきます。
もし、これはもっと短く書ける!などご指摘がありましたらよろしくお願いいたします。
### 対応したもの
何もかもにも対応という訳にはいかず、対応したのは以下のみです。| エクセル中の表現 | 対応状況 |
|:-:|:-:|
|セルの結合状態| 対応 |
|セルの枠線|hair、thin、medium、thickの
pythonのモジュールを実行するときのコマンド
# バージョン
Python 3.10.5# 結論
import ファイル名# 具体例
例)test.py
import test# 補足
モジュール:○○○.pyという、1つのファイルにまとまった機能の集まりのこと。
[OCR]情景文字認識(Scene Text Detection) pythonライブラリー
## 概要
今回はあるSTD(scene text detection)ライブラリーを使う感想を記録したいんです。
[github](https://github.com/breezedeus/cnstd)
>CnSTD 是 Python 3 下的场景文字检测(Scene Text Detection,简称STD)工具包,支持中文、英文等语言的文字检测,自带了多个训练好的检测模型
`CnSTD`ライブラリーの実行環境は`Python 3`で、中国語、英語など言語も文字認識もできます。中身は学習済の`machine learning`モデルも含まれています。
## インストール
docker環境以下実行し、CnSTDは`openCV`を使い、まずは`libgl1-mesa-dev`をインストールする必要がある
“`
apt-get install -y libgl1-mesa-dev
“`cnstdをインストール(デフォルトのmachine learningモデルも含まれているので、ちょっと重いかもしれません。)
“`
pip install cnstd
`
【Python】マイグレーションツールAlembicを触ってみる
SQLAlchemyで使えるマイグレーションツールAlembicの使い方を調べました。
自分の中でベストな構成(今のところ)が完成したので残しておきます。https://alembic.sqlalchemy.org/en/latest/
# 準備
“`bash
$ python3.8 –version
Python 3.8.13# venv
$ python3.8 -m venv .venv
$ source .venv/bin/activate# パッケージインストール
$ pip install alembic pymysql SQLAlchemy# ディレクトリ作成
$ mkdir -p db models
$ touch db/__init__.py models/__init__.py# データベース作成
$ MYSQL_PWD=”XXXXXXXXX” mysql -u user -h somedb.example.com -e “create database alembic_tutorial”
“`# ディレクトリ構成
“`
a
コマンドプロンプトで実行するPythonスクリプトにおけるANSIカラーの出力
WindowsのコマンドプロンプトでPythonのスクリプトを実行し,コンソールへの出力に色を付けたり太字にしたりする方法です.
# 短いサンプルコード
“`py
import os
os.system(”)
print(‘\033[31mRed\033[0m’)
“`コンソールへの出力は次のとおりです(サンプルコードをmain.pyとして実行):
![foo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425475/46333304-4d9e-344b-c139-9a825bb0ff36.png)# 解説
サンプルコード2行目の`os.system(”)`は引数のコマンドをサブシェルにて実行します[1].Windowsの場合通常はコマンドプロンプトです.引数が`”`のため単にサンプルコードのプロセス上で機能し始めるだけです.
PythonインタプリタはANSIエスケープシーケンスの処理を有効にしないので`os.system(”)`を使用してください[2][3].# 補足
Gradioとは? Pythonで機械学習Webアプリケーションをサクッと作ろう!
## Gradioとは
![スクリーンショット-2022-10-03-13.37.09-2048×996.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/171715/3dd81571-d2d4-3fad-984e-98aeeaa173af.png)
[Gradio](https://gradio.app/)とは、機械学習モデルのデモを行うWebアプリケーションを簡単に作ることができるPythonのライブラリーです。
この記事では解説致しませんが、Gradioで作成したWebアプリケーションは、[HuggingFace](https://huggingface.co/)の[Spaces](https://huggingface.co/spaces)でアプリを公開することができます。(現時点では、Gradio以外にも、[Streamlit](https://streamlit.io/)をサポートしています。Gradioの公式ページより、デモアプリケーションを確認できます。
![スクリーンショット-
TelloConsole ビギナーガイド:Python の環境構築
# Tello Console を始めるための環境を構築する
このサイトは、Tello Console の環境を構築する方法を記述します。python、tello プログラミング初心者向けとなります。
ここでは、python を使って tello ドローンをプログラミングするまでに必要な環境を構築します。tello、TelloConsoleについて詳しく知りたい方は、[こちらの**Tello SDK を自分なりに最適化してみた(Tello-Console)**](https://qiita.com/GAI-313/items/7ff5bece03e9173678fb)を参照してください。
気をつけてほしいのが、使用しているPC の応じて環境構築の方法が異なります。そのため Widows、macOS、Ubuntu での環境構築方法をセクションを分けて記述します。
**注意:ここでいう Python は、Python 3 のことを指します。**
– [Tello Console を始めるための環境を構築する](#tello-console-を始めるための環境を構
TelloConsole ビギナーガイド:サンプルコードの実行
# Tello Console をのサンプルコードを実行する
この記事は、**TelloConsole チュートリアル第2項**となります。初めてこの記事を見られた方、もしくは Python の環境をお持ちでない方は **[Tello Console を始めるための環境を構築する](https://qiita.com/GAI-313/items/ead355cb552d13405cc9)** を参照してください。この記事では、TelloConsole をダウンロードして実際に Tello をサンプルコードで飛ばしてみます。この記事は初心者向けに作成されています。
前提として、Tello EDU を用意してください。Tello EDU は[こちら](https://store.dji.com/jp/product/tello-edu?set_region=JP&vid=47091)で購入できます。## TelloConsole をダウンロードする
TelloConsole は、[GitHub](https://github.com/GAI-313/Tello-Conso
【解決法】ModuleNotFoundError: No module named ‘chromedriver_binary’
– ファイル実行
“`terminal
$ python3 ファイル名
“`– 失敗
“`terminal:例
sample@SampleMBP Selenium % python3 sample.py
Traceback (most recent call last):
File “/Users/username/Desktop/Selenium/sample.py”, line 1, in
import chromedriver_binary
ModuleNotFoundError: No module named ‘chromedriver_binary’
“``chromedriver_binaryが見つからんぞ。`と。
# 解決までの手順
## 1. ブラウザ上でChromeのバージョンを確認
ツールバーから「GoogleChromeについて」をクリック
![スクリーンショット 2022-10-02 19.15.07.png](https://qiita-image-store.s3.ap-northeast-1.am
ブロックチェーンを実装してみた & 改ざんを試みた
# はじめに
最近、Web3に関するツイートやニュースの中でも、Non-Fungible Token (NFT)を目にすることが多い。
NFTはブロックチェーンに基づいた技術で、その改ざん不可能性が肝となっているらしい。
以前からブロックチェーンの改ざん不可能性については知っていたものの、
– なぜ改ざんが不可能なのか
– 改ざんを試みると、どうなるのかといった疑問が残っていた。
今回は、これらの疑問を解決すべく、自分でブロックチェーンを実装し、送金データの投入を行う。更に、送金データの改ざんを試みることで、さらなる理解を目指す。# ブロックチェーン
ブロックチェーンは、hash値、data、nonceで構成される「ブロック」がつながったものである。
データを読み取る時は、各ブロックが持っているdataを読み取るのみでよい。
競合する複数のブロックチェーンが存在した時、つながっているブロック数が最大のもののみを信用する。### hash値
なんらかのデータをhash化することによって得られた値。
“`math
h = H(d)
“`
ここで$h$,$H$,$d$はそ
AtCoderでよく使いそうな関数メモ
# この記事は何?
AtCoderでよく使いそうな関数たちをまとめた記事です。# 記事を作成した背景
AtCoder挑戦時に毎回検索して時間を使っているなぁ。。。
-> 関数をまとめて記事にしておいたら自分に必要な関数だけ参照できるのでは?
-> 関数まとめた記事を書いて、辞書みたいに使おう!# 入力を受け取りたい
AtCoderの入力パターンは下記かな、という認識です。
1. 入力値が1つだけある
– `10`など
1. 入力値がスペース区切りで複数ある
– `1 2 3`など## 1. 入力値が1つだけある
### 例:文字列として入力を取得
“`python: 入力に「test」が与えられる
x = input()
print(x)
# -> test
“`
### 例:数値として入力を取得
“`python: 入力に「10」が与えられる
# intで型変換をする
x = int(input())
print(x)
# -> 10
“`## 2. 入力値がスペース区切りで複数ある
### 例:文字列として入力を取得
“`python: 入
Flaskで立てたサーバーが外部からアクセスできない場合に確認すべきこと
# 外部からアクセスできない場合に確認すべきこと
flaskでサーバーを立ち上げたときにlocalhostからは通信が可能だが、外部から通信ができない場合に確認すべきことについてまとめました。先日ひどいめにあったので。
flask関係なく通信エラー時に確認すべきことも含みます。## サンプル
一番シンプルなサンプルコードを載せます。
flaskコマンドではなくpython側で実行してるので、flaskコマンド使用者はうまく読み替えてください。
問題ない方はここは読み飛ばしても構いません。“`python
from flask import Flaskapp = Flask(__name__)
@app.route(“/”)
def hello_world():
return “Hello, World!
”
def main():
app.run()if __name__ == ‘__main__’:
main()
“`こちら実行すると、以下のような出力になります。アクセス時の出力も出てます。
“`she
【解決法】Error: pg_config executable not found.
# エラー対処
ライブラリインストール時のエラーを書き留めておきます
### 事前準備
“`terminal
$ cd ~/対象プロジェクトまでのpath
$ python -m venv env # pythonの実行環境を仮想的に作成(envは名称なので任意でOK)
$ . env/bin/activate # 作成した仮想環境のバッチを実行し、仮想環境への切り替えを行う
“`
“`requirements.txt
省略
psycopg2==2.9.3
“`### エラー発生
“`terminal
$ pip install -r requirements.txt # 一括でライブラリをインストール
“`“`terminal:terminal
(env) (base) sample@SampleMBP 対象プロジェクト % pip install -r requirements.txt
Collecting asgiref==3.2.10
Using cached asgiref-3.2.10-py3-none-any.whl (19 kB)
Col
Python(3.10.7)をWindowsにインスコするの巻
## はじめに…
Pythonの入れ方を細かく説明したつもりです
わからないとこあったらコメントしてネ## とりあえずダウンロードします
公式サイトから最新バージョンをインストールしますhttps://www.python.org/downloads/
リンクに飛んで Download Python 1.10.7を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004944/bda4cb9e-0f29-996c-020a-276a22523425.png)## インスコする
ダウンロードしたインストーラーを開く出てきたら Add Python 3.10 to PATHにチェックを入れる **※絶対**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004944/82a5ac12-89ad-01bb-d526-7cbfd120eba2.png)
入れたらCus
Python & ビット演算でドドスコしてみた
# 今更ドドスコ
こちらが話題になっていた2022年の夏、コロナに罹ってダウンしていたところ完全に乗り遅れてしまったので今更ながらやってみました。
リプで配列を使った例はよく見かけたので今回はPythonのビット演算で実装してみることにします。【問題】配列{"ドド","スコ"}からランダムに要素を標準出力し続け、『その並びが「ドドスコスコスコ」を3回繰り返したもの』に一致したときに「ラブ注入♡」と標準出力して終了するプログラムを作成せよ(配点:5点)
— ((?++)) (@Sheeeeepla) August 1, 2022
# やってみた
コードはこんな感じ。
“`python:ddsk.py
import randombuffer = 0
while True:
buffer = buffer << 1 & 4095 if random.getrandbits(1): buffer |= 1 print("ドド", end="") else: print("スコ", end="") if buffer == 2184: print("ラブ注入♡") bre
【Pytorch】MNISTのGAN(敵対的生成ネットワーク)を実装する
# はじめに
本記事のコードは以下のnotebookに記載されています。
外部データなど不要ですので、とりあえずGANを動かしてみたいという方は是非触ってみてください。
https://colab.research.google.com/drive/1TQWMTNDbqLQ0dWo4-rFz1mbY80hLIQNo?usp=sharing# GANとは
GANはGenerative Adversarial Networkの略であり、敵対的生成ネットワークの邦訳が与えられています。
GANはディープラーニングを利用した生成モデルの一種であり、生成器と識別器という2つのネットワークを持ちます。
これら2つのネットワークが互いに競い合うように学習することが、Adversarial(敵対的)の由来となります。GANは近年、実在しない高精度の画像を生成することに成功しており、非常に注目されている技術です。
加えてGANの本質は2つのネットワークが競い合うように学習する点にあるため、画像生成以外にも多様なタスクに応用が可能です
そこで今回はGANに対する理解を深める為、Pytorchを用い
pythonで対数グラフ(それと聴覚閾値)
# 初めに
この数式って本当にこのグラフになるのかな?って不安になることってありますよね。
今回はそんな自分の不安にpythonで解決しようとした際に出た問題を記事にしています。# 問題
最小可聴値あるいは聴覚閾値と呼ばれるグラフを探した際に次のようなグラフが見つかりました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2647158/5c7c1b6b-6c03-9e75-eee6-5bb4e398bcdb.png)
↑wikipediaよりこれをpythonで再現したい。
xが10の累乗のグラフなので、それが再現できるpythonのコードにしなくてはいけない。# コード
“`python
import matplotlib.pyplot as plt
import numpy as np
f = np.logspace(1,4,500000,base=10)
ath = 3.64*(f/1000)**-0.8-6.5*np.exp(-0.6*(f/1000
マイク入力音声をリアルタイムでFFTしてグラフ化する
# 初めに
この記事はガチでコードだけを置いておこうというやつです。
なので解説は行っていませんが悪しからず。# コード
“`python
import pyaudio
import matplotlib.pyplot as plot
import numpy as npdef audiostart():
audio = pyaudio.PyAudio()
stream = audio.open( format = pyaudio.paInt16,
rate = 44100,
channels = 1,
input_device_index = 1,
input = True,
frames_per_buffer = 1024)
return audio, streamdef audiostop(audio, stream):
stream.stop_stream()
stream.close()
audio.terminate()de
Flaskアプリケーションのセッション問題
Flaskでアプリケーションを作っていて、ちょっとはまったのでメモ。
## 複数のFlaskアプリケーション
Flask でセッションを使うには、
“`Python
app = Flask(__name__)
app.config[‘SECRET_KEY’] = b’適当なキー文字列’
“`
と設定するのは周知の通り。たとえば、Flask のアプリケーションを2つ稼働しているとして、
どちらもセッション情報を使う(たとえばログイン情報を保持しておくとか)場合。
同じブラウザの別タグで、それぞれのアプリケーションを開いて、タブを切り替えたりしていると、片方のセッションが消えてしまう現象が発生する。
FlaskはCookie にセッション情報を保存するが、デフォルトだと、”session” という名前になる。
![cookie1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882462/d690a5c8-0f80-d15f-42df-e2de92226281.png)アプリケーション1つ
[Python][Tips] 処理時間の計測
https://camp.trainocate.co.jp/magazine/python-time/
上記によると、Python処理の実行時間を測定する方法は以下の3つ。
> (1) time.time() : 最も簡単な実行時間を測定する方法
> (2) time.perf_counter() : 正確に実行時間を測定する方法
> (3) time.process_time() : CPU実行時間のみを測定する方法(sleep時間を除く)(2)が実用的に使えるので、実際の業務で利用しています。
“`python
import timestart = time.perf_counter() #計測開始
##################################
##### #####
##### 計測したい処理を実行 #####
##### #####
#################################
end = time.perf_cou