Python関連のことを調べてみた2021年03月28日

Python関連のことを調べてみた2021年03月28日
目次

PDF文書に印影画像を埋め込む

PDF文書にスタンプ角印的な印影を埋め込みたい

「請求書等のPDF文書に印影っぽいものがほしい」
という要望がありました。

個人的には、形だけで意味があるとは思えない作業なのですが、
取引先から要望を受けた場合は、対応せざるを得ません。

その場合はAdobe Acrobatのスタンプ機能を利用したり、
スタンプ印を押した文書をスキャンしてpdfにしていました。

ただ、これでは対象文書数が多いときに面倒です。
そこでPythonを使って印影画像を埋め込もうと考えました。

準備

・glob,pdfrw,pillowをインストール
・pythonファイルと同階層に「pdf」フォルダ、その直下に「export」フォルダを作成
・「pdf」フォルダに印影画像を埋め込みたいpdfファイルを保存
・印影データ(透過png)を「pdf」フォルダ直下に保存
![hanko.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565780/27c8753b-0d07-0744-c128

元記事を表示

続・Pythonでファイル名の一括変換スクリプトを書いてみる

#はじめに
前の記事でファイル名の一括変換スクリプトを作成しました。

https://qiita.com/Lynx_Arc18/items/d5695d2129b1d38a8cf8

が、結果として下記のような問題が起こっていました。

>無事、一括変更することができましたが、
>名前の対応が崩れてしまったようです。。。
>※Pythonで変更前のファイル名を名前順でソートすると「コマンドプロンプト」の画像のような順番になるようですね。。。

今回はこの問題を解決することが目的となります。

#何が問題だったのか
Pythonのsortに関して、いろいろ調べてみた結果、
「文字列」として数値を比較していることが原因のようです。
※文字列として比較する場合は”2″という文字列は”10″という文字列より大きい扱いとなっている

#解決策
原因が分かったので、以下のような解決策を取ろうと思います。
①ファイル名を取得する(ファイル名中には数値が含まれるとする)
②ファイル名中の数値を取得し、文字列型ではなく数値型とする
③数値同士を比較して昇順で並び替え
④③を実施するときに元のファイル名

元記事を表示

Pythonでデータの挙動を見やすくする可視化ツールを作成してみた(ヒストグラム・確率分布編)

# 概要
近年、品質管理やマーケティングの分野で「ばらつき」分析の重要性が叫ばれていますが、
ばらつき分析と切っても切り離せないのが**「ヒストグラム」と「分布の種類の判断」**です。

今回はPythonのグラフ描画ライブラリ「seaborn」をベースにして、
**分析の種類の判断を強力にサポート**するツールを作成しました!
### 機能1. 正規分布かどうかの判断
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/c6ebdf5f-7136-4080-91d5-016b99c969a4.png)
### 機能2. 各種確率分布のフィッティングとあてはまり評価指標
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/bb3ce2c5-ccec-a009-8e78-2503fdd87a9a.png)
![image.png](https://qiita-image-st

元記事を表示

Databricks ReposによるGit連携

[Repos for Git integration \| Databricks on AWS](https://docs.databricks.com/repos.html)の翻訳です(2021/3/18時点)。

> **プレビュー**
本機能は[パブリックプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。

リモートにあるGitリポジトリとあたなの成果物を同期することが可能です。これにより開発のベストプラクティスを容易に適用することができます。DatabricksはGitHub、Bitbucke、GitLabとの連携をサポートしています。

ReposはリモートのGitリポジトリと同期することでコンテンツの同時編集ができるフォルダーです。ReposにはDatabricksノートブックとサブフォルダのみを含めることができます。接続されたGitリポジトリには他の形式のファイルを格納することができますが、それらはDatabrikcsワークスペースには表示されません。

# 要件

– Repo

元記事を表示

7セグで、任意の値を表示させてみた

タイトルの通り、好きな数字を入力したら、7セグに出力されるものを作ります。

#使用したもの
– Raspberry Pi 4 Model B
– ブレッドボード
– ジャンパ線
– 赤色7セグ([A-551SRD](https://akizukidenshi.com/catalog/g/gI-00639/))

#1. 配線する

下の画像のように、ジャンパ線を使いつなげていきます。
![7seg.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549741/b9723c6c-266a-172a-daa2-20ab4cc193e4.gif)
7セグの足とGPIOのポート間は以下の通りです。

– 十の位

| 7セグの足 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| GPIO | 22 | 18 | 電源線 | 16 | 省略 | 7 | 11 | 電源線 | 13 |

元記事を表示

Python: Tweetしたり、QRCode生成したり (および Best Python Examples紹介)

脈絡もないこと甚だしいが、お試しして面白かったものをメモがてら。

## PythonからTweetする
Tweeter.py:
https://github.com/geekcomputers/Python/blob/master/tweeter.py

[Twitter APIキーとトークンの取得方法](https://blog.palettecms.jp/article/20103) を設定しておく。
https://developer.twitter.com/en/apps/
一度 [Read-only application cannot POST. がでた](https://qiita.com/butsuli_shine/items/78fd5ee6fdb4a0581652) が、無事成功。

`pip install tweepy` の後、以下。

“`tweet.py
from __future__ import print_function

元記事を表示

【BTCシストレ入門】コピペで完成!簡単な仮想通貨自動売買BOTを作ってみた(デモトレードで即スタート可能)

## 概要

シストレ絶賛勉強中の @kazama1209 です。

最近また仮想通貨が盛り上がってきている事もあり、自動売買BOTが作れたら良いなぁと思い色々試行錯誤してみた結果、簡単なロジックのものであれば何とか稼働するところまで持っていく事ができたので、復習がてらメモ書きしていきたい思います。

## 本記事で目指す構成

![Untitled Diagram(7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/3b554352-2047-fa5d-e270-3465074f6e5f.png)

– 自動売買BOT
– Docker × Python
– 仮想通貨取引所
– bybit(デモ版)
– LINE通知機能

”再現性”を何よりも重要視しているため、環境構築はDockerを使って行っていきます。

取引所は「bybit」を採用しました。理由としては、口座開設 → APIキー発行までのハードルが低すぎる(本人確認書類などの提出も不要で必要なのはGoogle2段階認証く

元記事を表示

ルーローの三角形

“`python
import matplotlib.pyplot as plt
import numpy as np

def rotate(a,theta):
return np.dot(a,np.array([(np.cos(theta),-np.sin(theta)),(np.sin(theta),np.cos(theta))]))

fig,ax = plt.subplots(figsize=(5,5),facecolor=’white’,dpi=100)
ax.spines[‘top’].set_visible(False)
ax.spines[‘right’].set_visible(False)
ax.spines[‘bottom’].set_position((‘data’, 0))
ax.spines[‘left’].set_position((‘data’, 0))
ax.set_aspect(‘equal’)
r = 1
ax.axis([-r*1.2, r*1.2, -r*1.2, r*1.2])
ax.text(0,0,’O’,va=’top’,h

元記事を表示

Djangoで管理画面を作ってみる

#背景
Djangoで即戦力を目指して、ものづくりをして見る。
わたしが考える即戦力なので、違っていたらすみません。
システム部の先輩になんでもいいからデータ引っ張ってこいという事を教えていただいたことから来ています。
#事前準備
##DjangoでTODOリストを作ろう!
https://qiita.com/__init__/items/b8fd530f3b8603231b35
公式のチュートリアルも含めて一番わかりやすかったです。ToDoリスト作成しました。
###やり方
Dockerは諦めました。
データベースは変えない方が良いかもしれないですね。

以下参考コマンド
source env/bin/activate
python manage.py runserver
python manage.py createsuperuser
Username (leave blank to use ‘XXXX’): admin
Email address: admin@goo.co.jp
Password:
Password (again):
Superuser created

元記事を表示

自分とこの環境下におけるPython使用ルール

完全に研究室のPython使用ルールとしてページを作成する.

# 更新履歴
2021/03/27:書き始め

# 概要
## Pythonとパッケージ
Pythonにはパッケージと呼ばれる沢山の便利ライブラリがある.これを必要に応じてインストール・使用することで色々なプログラムを簡単に作れる.とりあえず,「Python パッケージとは」とかで検索するとちゃんと説明文が出てくるので詳しくはそちらを参考のこと.

## 便利なパッケージの落とし穴?
ちょっと複雑なコードを書こうとすると,なんらかのパッケージをインストールすることになる.するとどうなるか.気軽にパッケージをインストールできる分,プログラムとパッケージの依存関係が強くなる.しかも,バージョンの依存関係も結構面倒で,最新版にしていれば大丈夫!なんてことはない.むしろ「適切なバージョンを使用しましょう(それは最新版ではありません)」となることがある.

その結果,Pythonコードを先輩・同輩からもらった時に導入パッケージの違いによって動かないことがある.例えば先輩がOpenAI gymのパッケージ`gym`をインストール・利用

元記事を表示

CPythonのスタック操作マクロ

#概要
CPythonでのスタック操作のマクロを確認しておく。
雰囲気を見ることが目的なので、デバッグ版ではないものに限定する。

#内容
Python 3.x
##スタック操作マクロ
“`c:Python/ceval.c
/* The stack can grow at most MAXINT deep, as co_nlocals and
co_stacksize are ints. */
#define STACK_LEVEL() ((int)(stack_pointer – f->f_valuestack))
#define EMPTY() (STACK_LEVEL() == 0)
#define TOP() (stack_pointer[-1])
#define SECOND() (stack_pointer[-2])
#define THIRD() (stack_pointer[-3])
#define FOURTH() (stack_pointer[-4])

元記事を表示

Python/C APIを読む その7(Py_Initialize)

#概要
Pythonの構造を理解する助けとして、C APIのドキュメントを読み砕いていく。

#内容
##環境
Python 3.9 (CPython)に話を固定したいが、必ずしもそうはならない。
[tree](https://github.com/python/cpython/tree/a144feeb7ec501aaf30072d50e70d54b200e5ef0) ([コミット](https://github.com/python/cpython/commit/79373951b3eab585d42e0f0ab83718cbe1d0ee33); [ブランチ](https://github.com/python/cpython/tree/3.7))
(↑ githubのリンク)

###<概説>
Pythonインタプリタを初期化する。
Pythonの埋め込みを行うアプリケーションでは、他のあらゆるPython/C APIを使用するよりも前にこの関数を呼び出さなければならない。

この関数はロード済みモジュールのテーブル(`sys.modules`)を初期化し、
基盤となるモジュ

元記事を表示

kaggleコンペ【March Machine Learning Mania 2021 – NCAAM】体験記

# まえがき
本記事は[March Machine Learning Mania 2021 – NCAAM](https://www.kaggle.com/c/ncaam-march-mania-2021)というkaggleで2021/2/26~2021/4/7(最終submitは2021/3/19)まで開催されているコンペにペアで参加したので、自身のソリューション公開と共に、これからコンペティションに参加される方にとって何か参考になればと思います。
(3/27時点:88/707 ブロンズメダル圏内)

# コンペ概要
概要をざっくり説明すると、以下のようなコンペになります。
・アメリカの大学対抗バスケットボールトーナメント大会本戦のチーム勝敗予測を行う
・男子バスケの試合のみを扱う(同時開催で[女子バスケ結果予測](https://www.kaggle.com/c/ncaaw-march-mania-2021)も開催)
・コンペティションとして毎年開催されている
・予測結果の最終submit後に、実際の試合結果がLeaderBoardに反映されスコア, 順位が上下する
・最終参加チー

元記事を表示

【日本語】Numeraiの便利リンク集

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1015710/4b8b49f9-0f60-244a-7ebf-654491fd2403.png)

はじめまして。
[tit_BTCQASH ](https://twitter.com/tit_BTCQASH “tit_BTCQASH “)と申します。

この記事では、Numeraiに関する便利な情報?が書いてある日本語記事をひたすらリンクします。
ある程度網羅したつもりですが、他にこんなのもあるよ!という方はコメントで教えてください。

また、ツイッターでの参考になる会話ツリーなどはまとめきれていないので、教えてくれると嬉しいです。

Numeraiって何?という方は、私の過去記事( [日本語版](https://qiita.com/tit_BTCQASH/items/366a2d1c273507dd4b8c “日本語版”) /[英語版](https://tit-btcqash.medium.com/a-comprehensive-gu

元記事を表示

responderなどでSQLAlchemyを使っていてPyLintに怒られたとき

## 前置き

responder、FastAPI。
いいですよねぇ。

アルゴリズム書くくらいしか能がないと思っていたPythonでしっかりWebサービスが作れます。
しかし歴史が浅いことと、フルスタックフレームワークでないこともあって若干敷居が高いのか、記事はまだ少ない印象があります。
小ネタですが日本語の回答がなかったので、Pythonマイクロサービスにぎやかしのため投稿しておきます。

## 現象

SQLAlchemyを利用しているとPyLintに

Instance of ‘session’ has no ‘add’ user’

のような感じで怒られる。
VSCodeで実行しているので自動的にLinterは働き、詳しいエラートレースは見ていないが、検索してみるとエラーコードは、`E1101`らしい。

ちなみにresponderやFastAPIはドキュメントを見る限り、標準でORMの機能を実装していないため、自分で好みのライブラリをimportしてくる必要があり、たまたま自分はresponderとDBの繋ぎ込みにSQLAlchemyを選択した。
したがってresp

元記事を表示

気圧センサーLPS25HBのレジスタどついてデータを読む

# なぜ気圧を見たいのか
私は釣りが趣味でして、ルアーなら色々やりますが主にバス釣りに行きます。
嘘か誠か、魚が釣れやすくなる(活性が上がる)時って、少なからず気圧変化が影響しているとかしていないとか。実際釣りしてて謎に爆釣するタイミングとかあるのですが、本当に気圧変化と関係があったら面白そうです。何はともあれ、まずは**気圧計**を作ってみましょう!

## 今回の目的
最終的に気圧のログを取り、直近1時間ぐらいの気圧変化を確認出来るようにします。魚が釣れた時に気圧変化を確認し、大きく変化していたなら釣果と気圧変化に因果関係がある可能性がありますね!普通に家の周りの天気予測に使えるかもしれない。
この機能は後程実装するとして、本記事ではレジスタを操作して気圧センサと格闘します。

では行こう。

## 材料
– Raspberry Pi 4B
– [LPS25HB使用 気圧センサーモジュールDIP化キット](https://akizukidenshi.com/catalog/g/gK-13460/)
– [温湿度センサ モジュール DHT11](https://akizukiden

元記事を表示

【Python】PatternFillオブジェクト、Alignmentオブジェクトを使ってセルの色と文字の配置を調整する。

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、セルの色と文字の配置に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927441/dea378dd-0662-8b5c-a560-bce97a5ce6b1.png)

上記のようなブック「商品リストを」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927441/0487b9f6-7cc2-3a41-b800-183425d83a3b.png)

この様な表に変更したいです。

# PatternFillオブジェクト

“`python
cell.fill = PatternFill(fgColor=’RGB形式の色’,
bgColor=’RG

元記事を表示

Python 編集距離 ONP

# 編集距離を算出するONPの実装をしたので備忘録

“`python
def edistance_onp(a, b):
if a == b:
return 0

M, N = len(a), len(b)

D = N – M # delta

if N == 0 or M == 0:
return abs(D)

if D < 0: return edistance_onp(b, a) def snake(k_, y): x = y - k_ while x < M and y < N and a[x] == b[y]: x += 1 y += 1 return y fp = {} fg = fp.get def whichy(y1, y2): yy1 = fg(y1, 0) + 1 yy2 = fg(y2, -1)

元記事を表示

Python3 で MySQL に接続するドライバを比較する

Python3 で MySQL に接続するドライバ

いくつもあって、どれがいいのか?

ぐぐって以下のようなものが出てきたので調べてみました。

– mysql-connector
– mysql-connector-python
– mysql-connector-python-repackaged
– mysql-connector-python-rf
– PyMySQL

# 環境

– OS Ubuntu Linux 20.04 ja
– MariaDB mysql Ver 15.1 Distrib 10.3.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
– Python 3.8.5

MariaDBは以下のように設定しました
「MariaDB on Ubuntu18.04 LTS (also Ubuntu20.04 LTS)」
https://qiita.com/nanbuwks/items/c98c51744bd0f72a7087

調査日は2021/03/26です。
https://py

元記事を表示

マテリアルのアニメーションをベイクするスクリプト

Blender内でマテリアルにつけたアニメーションを他のソフトに持っていきたい
といった趣旨の話題を見かけて
![21032701.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151493/2a039b45-6d43-0b26-90d1-be2e54f630b5.gif)
そういったデータを受け渡しのできるフォーマットもないので
マテリアルをベイクした連番画像を作成できればいいのでは?と思い作成してみました

“`py:y_BakeMaterialAnimation.py
import bpy
import os
# ベイクする画像のサイズ
img_width = 1024
img_height = 1024

# ベイク用のノードの作成
def criete_bake_terget(mat, image, uv_layer):
node_tree = mat.node_tree
img_node = node_tree.nodes.new(“ShaderNodeTexImage”)

元記事を表示

OTHERカテゴリの最新記事