Python3関連のことを調べてみた2021年10月21日

Python3関連のことを調べてみた2021年10月21日

例外処理で大元のエラー箇所をlogしたい時

# 結論
“`some.py
import sys
import traceback
from some_module import some_func

def some_some():
try:
some_process…
some_val = some_func() # エラーが起こる処理 -> さらに some_func()で呼んでいるsome_blah_func()でraiseしてるとする
except Exception as e:
t, v, tb = sys.exc_info()
print(traceback.format_tb(tb)[-1]) # <-大元のエラー箇所を出力する ``` すると出力はこんな感じ。 ``` some_container | File "/some_path/some_blah_module.py", line 30, in some_blah_func some_container | raise ``` # 解説 s

元記事を表示

購買回数の分布と負の二項分布の関係

# はじめに

購買回数/来店回数の分布は負の二項分布で表すことができるとよく言われます。
この事について、何故そうなるのかを書いていきたいと思います。

# 使用データ

[共立出版 – データ分析プロセス](https://www.kyoritsu-pub.co.jp/bookdetail/9784320123656)に付属しているデータTafeng.csvを使用します。

## データを見てみる

2000年11月のデータを使います。購買回数(来店回数)を出したいので、同じ日付かつ同じユーザーの重複を削除し、購買回数を出します。

“`python:python
df = pd.read_csv(‘Tafeng/Tafeng_dataset/Tafeng.csv’)
df[‘dt’] = df[‘Time’].str[:10]
df[‘month’] = df[‘Time’].str[:7]
# 2000-11のみ使用
df_target = df[df[‘month’] == ‘2000-11’]
# DB全体の人数
target_users = pd.DataFrame(

元記事を表示

python-docxでサムネイルを削除する

## 【問題点】アイコンまっしろやんけ!
F5でリロードしてみると、一瞬だけワードのアイコンが出る。
すぐに真っ白になるので、多分画像ファイルの縮小版表示と似たことが起きているっぽい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/447423/d82ee08a-5e43-0bb9-7593-cd8abe606de8.png)

## 【原因】問題はやっぱり「縮小版」(英語:Thumbnail)
「縮小版」、そんな機能があるのか…と、「Word 縮小版」とググったら見つかりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/447423/13a76316-517a-e796-0e92-ddd67aea6cb6.png)

## 【解決策】以下のファイルを開いて再度保存
開くファイルはdefault.docx
これをテンプレートにして新たなWordファイルが作られてるっぽい。
![imag

元記事を表示

Pythonでesa.ioのAPIを触る

# はじめに
ドキュメント共有サービスであるesa.ioではAPIを公開していて、APIを通して記事やコメントの取得や作成、スターをつけたりけしたり等広くesa.ioの機能を利用できます。

今回は、pythonでesa.ioのAPIを触ってみましょう!

# インストール
pythonで作成されたesa APIのクライアントライブラリを利用して、APIにアクセスします。
ライブラリ: [piyo](https://github.com/argonism/piyo)

“` shell
pip install piyo
“`

# APIを叩いてみる

とりあえず、クライアントをnewします。
``と``は自分のアクセストークンとチーム名に置き換えてください。
Clientにアクセストークンを渡す代わりに、環境変数のESA_ACCESS_TOKENにアクセストークンをセットしても大丈夫です。

“` python3
from piyo import Client

def main():
client = Client(a

元記事を表示

Googleロケーション履歴のPython3+foliumによる地図表示のサンプル

タイトル通りです.次の記事を参考にさせていただきました.

* [Googleロケーション履歴を使って整形(pandas)と地図上に表示(folium)させることを考える[初心者のPython3]](https://qiita.com/jam-goat/items/99dbdd4976544686a0ba)

参考というかほとんどパクりですが(正直),[pandas](https://pandas.pydata.org/)は使わなかったのと,次の実行例のように,年月を入力すると,履歴のある日の地図表示のHTMLファイルを半自動的に生成するようにしたことから,若干お手軽化+ちょい機能の例として公開している次第です.
![lmap-exec-sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672267/331ea2aa-044b-280c-1d49-58e608a587ff.png)

生成されたHTMLファイルの表示例(帰省時の新幹線移動^^;):
![kanto-loc20211017.pn

元記事を表示

Pythonプログラミング:urllib.requestを使ったtimeoutを指定したHTTPリクエスト発行

# はじめに

Tipsです。
Webサイトを対象に(Sleepを入れて負荷をかけないように)スクレイピングをしていました。
が、時折ハングアップしてしまう場面にも直面していました。

・・・はい、timeoutの設定が漏れてました。
そのため、応答があるまで待ち続けてしまっていました(≒ハングアップの状況)。

というわけで、HTTPリクエストを発行する処理を見直したいと思います。

## 本稿で紹介すること

– urllib.requestを使ったHTTPリクエストの発行

尚、筆者は以下のVersionで動作確認をしています。
– Python: 3.6.10

# サンプルコード

結論だけ、BeforeとAfterのCodeを紹介。

## Codeを紹介

端的に言えば、urlopen関数で、timeoutパラメータを指定するだけです。
以下、Code例です。
元のCode全体は、**[こちら](https://qiita.com/Blaster36/items/680000a7479e3a90857f)**を参照されたし。

“`python:Before
de

元記事を表示

Python始めました。(その2)

 前回の続きになります。
 [Python始めました。(その1)] (https://qiita.com/K-Ohgata/items/4a79f0e618590c3b5116)
 相変わらずコードばかりで読みづらいですが、ご容赦ください…。

# if文
 pythonはインデントでif文などの範囲(ブロック)を判別する。

“`python:sample.py
fruits = [‘apple’, ‘orange’, ‘grape’, ‘peach’]
if ‘apple’ in fruits:
print(‘apple is.’)
if ‘orange’ in fruits:
print(‘orange is too.’)
else:
print(‘apple is not.’)
print(‘I want to eat apple.’)

if fruits: # 値ある場合はTrueとして処理される
print(fruits[0])

color=’yellow’
if color==’red’:
prin

元記事を表示

python-docxで日本語用のフォントを設定する

## できること
「日本語用のフォント」を設定できるようになります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/447423/4ddca1bb-4bdc-2bd9-d2de-64d1cf264a80.png)

## 利用法
“`Python3:real_usecase.py
# 東アジア言語用のフォント設定をします
paragraph.runs[0].font.name_eastasia = “MS ゴシック”
“`

## 設定
python-docxのファイルをいじって、東アジアの言語(いわゆるCJK Languageだと思われる)に対応させます。
私はminicondaを利用していますが、各自の環境に合わせていじるファイルの場所を特定してください

“`Python3:miconda3/envs//Lib/site-packages/docx/text/font.py/Font
# 以下の部分をnameのgetter/setterの後あたり

元記事を表示

画像ビューワー、ボタン操作、JSONで保存 #メモ

WSLで実行する場合は下記参照
https://dev.classmethod.jp/articles/wsl-x-window/

“`

# -*- coding: utf-8 -*-
import cv2
import glob
import json

target = “target/*.png”
print(“target:”+target)

data_BasePath = sorted(glob.glob(target))
print(“target:”+target)

data_BasePath = sorted(glob.glob(target))
print(“image Num:”+ str(len(data_BasePath)))

yesno_dict={}
# for idx_inter, data_BasePath_png in enumerate(data_BasePath):
idx_inter = 0
while True:
data_BasePath_png = data_BasePath[idx_inter]
# 入力画

元記事を表示

AnacondaのインストールからJupyterLabの起動まで【WIndows10】2021.10

## はじめに
機械学習/データサイエンスにおけるPython環境構築は、ライブラリの依存関係が強く、インストールに手間がかかり、非常に面倒です。
ここでは、お手軽に環境構築するために、科学計算のためのPythonおよびR言語のディストリビューションであるAnacondaのインストールと、JupyterLabの起動までを説明します。またAnaconda Navigatorを用いた仮想環境の作成方法について説明します。
※この記事では、Windows10を使っています。

## Anacondaのインストール
####1. Anacondaホームページから、Products>Individual Editionへ。
https://www.anaconda.com/

####2. Downloadをクリックしてインストーラーをダウンロードしてください。

元記事を表示

Raspberry piへのTensorFlowのインストール (モルカーを画像認識で判別したい!)

#本記事の内容
– Raspberry PiにpipでTensorFlow 1.14をインストールする (モルカーを画像認識で判別したい!)

画像認識の仕組みをラズベリーパイで実現しようとしています。
モルカーを画像認識で判別したいと思っています。出来たら可愛いなあと。

まずはTensorFlowをRaspberry piにインストールします。

尚、pipでインストールできるのは、1.14までの様です。
1系の最新版である、1.15.Xをpipでバージョン指定してインストールしようとしてもエラーになりました。
1.15をインストールしたい場合は、ソースからビルドする方法で自前でインストールする必要がありそうです。

#実施環境
– Windows 10
– TeraTarm Version 4.9.4
– Raspberry Pi 2 Model B
– PLANEX 無線LAN子機 GW-USNANO2A ※Raspberry Pi 2はWi-Fi通信モジュールがないため、無線LAN子機をUSBに接続しWi-Fi通信を行う。
– 家庭内の無線LANネットワーク環境にて実施

#

元記事を表示

Pythonで個人的によくわすれるやつ

## 関数引数について
pythonにおいて関数引き数は参照型であるため引数で渡した値が対象の関数内で書き換わること期待したが、
pythonの基本型はimmutableであり、関数の呼び出し前後でオブジェクトが変わっており、期待する振る舞いではなかった。
下記例において、add関数内で変数cntが再度生成されたというように考えるべきであり、引数のcntは単純な読み取り専用となっている。
品質的にはそれが好ましいと感じている。

“`python
def add(cnt:int) -> int:
print(‘——————————–‘)
print(‘cntのid 加算前 = {0}’.format(id(cnt)))
cnt = cnt + 1
print(‘cntのid 加算後 = {0}’.format(id(cnt)))
return cnt

counter : int = 0
print(‘——————————–‘)
print(‘関数呼び出し

元記事を表示

Python3.7以降でsubprocess.run()関数を使いexe実行

#Python3.7以降でexeを実行する
Python3.5以降でexeを実行するには、**subprocess.run**を使います。
(※Python3.4以前は**subprocess.call**です。)
そしてこの記事で紹介するパラーメータは3.7以降のものなのでご注意ください。

コマンドプロンプトで以下コマンドで実行するexeを例に説明します。
(例)cmd> `sample.exe /a /b /c`

“`python
import subprocess

result = subprocess.run(“sample.exe /a /b /c”)
print(result)
#戻り値
#CompletedProcess(args=’sample.exe’, returncode=0)

“`

 

戻り値の通り、これだけでは出力結果やエラー出力結果が得られません。
そこで、`capture_output`と`text`パラメータを設定してやります。

“`python
import subprocess

result = subprocess.r

元記事を表示

tar.gzファイルのダウンロードから解凍保存をメモリ上で実施したい

## やりたいこと
tar.gzファイルを外部からダウンロードし、メモリ上で解凍。
解凍したファイルを任意のディレクトリに保存。(tar.gzファイルは保存しない)

## 実現方法
“`python
import requests
import tarfile
import io

with tarfile.open(fileobj=io.BytesIO(requests.get(‘tar.gzの取得先URL’).content)) as tarf:
tarf.extractall(‘保存先ディレクトリ’, members=tarf)
“`

元記事を表示

オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(2)

今回は、前回の記事で2JCIE-BUから取得できることがわかった各種の値を溜め込むためにラズパイにPostgreSQLをインストールして、セッティングしていきます。

https://qiita.com/Toshiaki0315/items/aa43e78c024bb900ef53

# PostgreSQLのインストール

最初何も考えずにsudo apt install postgresを実行したらエラーになりました。

インストール失敗ログ

“`shell-session:
pi@raspberrypi:~ $ sudo apt install postgresql
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下の追加パッケージがインストールされます:
libllvm7 libpq5 postgresql-11 postgresql-client-11 postgresql-client-comm

元記事を表示

kivyMDチュートリアル其の参什捌 Components – Selection篇

ハロー、Qiita!いかがお過ごしでしょうか。

今週も相変わらず、KivyMDの触れ込みをやっております。お時間ありましたら
お付き合いください。

ニュース的には、特にとりとめもないのですが、変わったことでいうと衆議院
解散くらいでしょうか。まさかの政治ネタが2週間連続という。投票結果がどう
なるかということをデータ分析で予想するというのも面白そうですね。私は、
知識がおぼつかず見ているだけになりそうですが…

ということで今週も元気にやっていきましょう。今週はSelection篇となります。

## Selection

マテリアルデザインのリンクは見ておいて頂けたらと思います。

マニュアルの最初の説明は以下のようになっています。

> Selection refers to how users indicate specific items they intend to take action on.

ここも個人の考え方をいれないよう、依頼をしてみます。

> 選択とは、ユーザーが行動を起こすための具体的な項目を示すことです。

選択 = Selection

となって

元記事を表示

ワンライナー年月日取得(python)

巷を探してもいったん変数格納しているまどろっこしいのしか見つからないので、書いてみました。

“`python:今日の日付取得
import datetime
print(datetime.datetime.today().strftime(‘%Y-%m-%d’))
“`

昨日の日付を取得するのにも、変数作りまくっているまどろっこしいのしかないですよね。次の式で一発取得です。

“`python:昨日の日付取得
import datetime
print((datetime.datetime.today() – datetime.timedelta(days=1)).strftime(‘%Y-%m-%d’))
“`

取得したい日付はtimedeltaの引数を調節すればOKです。
使える引数は以下が参考になります。
https://docs.python.org/ja/3/library/datetime.html

良きワンライナーライフを!

元記事を表示

【Python3】0から作るPython初心者プログラミング【01】-じゃんけんプログラム-

#【初回ご挨拶】こんにちは! ぬかさんエンジニアリングです。(初投稿‼)

この**「0から作るPython初心者プログラミング」シリーズ**は、Python初心者である私が、**初心者の初心者による初心者のための実践的プログラミングスキル**を皆さんと実践的に学び共有していきたいという趣旨の元に発足した企画です。

お題となるプログラムを最初に提示しますので、各自コーディングをした後にこの記事を読みながら答え合わせをしてみてください!

Python入門書を読み終えてこれから実践的コーディングをたくさんこなしていきたいと思っている……..けど**どんなプログラムを作ればいいかわからない‼**とお題に困っていた皆さん、このシリーズをこなして実践力が上がりました!と言ってもらえるように頑張ってコツコツ書いていきますので**是非ご一読を!それからLGTMも是非!**
$

元記事を表示

Ubuntu 20.04でpython3をデフォルトに設定

久しぶりにUbuntu 20.04をインストールしたら、Python3をデフォルトにする方法を忘れていたのでメモ。

結論としては以下の実行。

“`
$ sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.8 0
“`
これだけでpython3がデフォルトになる。

“`
$ python –version
Python 3.8.10
“`

自分の環境では何故かpython2が入っていなかった(20.04って元々そうでしたっけ?)。

【以下はただの参考情報】
変更するものがないのでupdate-alternativesで–configすると「変更もなにも変更対象のものがない」と言われ、プライオリティをつけずに–installすると「 」と最後にプライオリティのための番号が必要だよと言われた(ので今回は0をつけた)。

“`
$ which python
$ which python3
/usr/bin/py

元記事を表示

【Python】日付をforで回したい (〇月〇日から△月△日まで〜)

## はじめに
**〇月〇日から△月△日まで〜** みたいなのをforで回したい時ありますよね。

そんな時に使えそうなライブラリを作ったので投稿します。

## ソースコード

名前は **`dt-range`** めっちゃ普通。

https://github.com/nanato12/dt-range

## 使い方

まずは普通に `pip` を使ってインストール

“`sh
$ pip install dt-range
“`

### 週単位で回したいとき: **weekrange**

“`python
from datetime import datetime

from dt_range import weekrange

START = datetime(2021, 1, 1)
END = datetime(2021, 1, 31)

for dt in weekrange(START, END):
print(dt)
# 2021-01-01 00:00:00
# 2021-01-08 00:00:00
# 2021-01-15 00:00:00
#

元記事を表示

OTHERカテゴリの最新記事