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

Python3関連のことを調べてみた2022年03月29日
目次

SeleniumとEdgeDriverを使ってMicrosoft Edgeのダウンロードフォルダを指定する(with Python)

# はじめに
Pythonとseleniumを使ってMicrosoft Edgeのダウンロードフォルダを指定する
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/

# 準備
“`
pip install selenium
pip install msedge-selenium-tools
“`

※ただし、msedge-selenium-toolsは非推奨?になっているっぽいが、よくわからないので妥協してmsedge-selenium-toolsを使う、
※selenium4に統合されたのでそっちを使えとのこと。
※日本語翻訳は機械翻訳がひどすぎるので英語版を推奨

https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=python
https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/capabilities-edge-

元記事を表示

PythonプログラムでSBI証券のIPOブックビルディング申込を自動化しよう!

株式投資をしていると、やりたくなるのがIPO投資ですよね。

しかし、IPO銘柄はとても人気が高く、抽選の倍率がかなり高いんですよね・・・

その抽選に申し込む作業のことを『ブックビルディング申込』と言います。

この作業がとても面倒くさいんです!!

ブックビルディング申込がとても面倒くさい割に、IPO銘柄はとても人気が高いので当選するとは限らないという・・・かなりコスパが悪いなぁと思っていました。

そこで、ブックビルディング申込をPythonプログラムで自動化できないかと思い実装しました!

# 本プログラムはこちらです
https://note.com/toranoko114/n/n851699d591a2

# プログラムを実行するまでの手順はこちら

PythonプログラムでIPOブックビルディング申込を自動化しよう!(SBI証券,野村證券,その他証券も随時UP予定)

元記事を表示

pyenvでPythonのversionが切り替わらない!

## 状況

Homebrewを使用して、pyenvをインストールした後、
pyenvでPythonの3.6.5をインストールしました。

“`:ターミナル
% python -V
Python 2.2.5

% pyenv global 3.6.5

% pyenv versions
system
* 3.6.5 (set by /Users/user/.pyenv/version)

% python -V
Python 2.2.5
“`
pyenvでバージョン3.6.5をglobalで設定してもバージョンは2.2.5を参照しており
pyenvを使ったPythonのバージョンを切り替えることができていません。

## 対処法: シンボリックリンクの再関連付け

下記ディレクトリの中にpython-buildがあるか見る
“`:ターミナル
/usr/local/Cellar/pyenv/2.2.5/bin/
“`
もしあれば、下記コマンドで再度関連づけしてみる
“`
% brew unlink pyenv && brew link pyenv
Unlinking /us

元記事を表示

シェルコマンドをPythonから実行して結果をリアルタイムに標準出力に出す方法

# 概要

Python の [subprocess](https://docs.python.org/ja/3.9/library/subprocess.html) を使うことでシェルコマンドを実行可能だが、実行結果をリアルタイムに標準出力へとパイプする方法(かつエラーハンドリングが正しく行われる方法)がわかりづらいのでメモしておく。

ちなみに `subprocess.run` ではリアルタイムなパイプはできなかった。

# 方法

“`py
import subprocess
import sys
import tempfile

def run_shell(cmd):
print(f’cmd: {cmd}’)
with subprocess.Popen(cmd, encoding=’UTF-8′, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as p:
for line in p.stdout:
sys.stdout.write(line)
p.wa

元記事を表示

Python で非 async な IO 処理を並列したい場合

# 概要

Python で並列処理したい場合は [asyncio](https://docs.python.org/ja/3.9/library/asyncio.html) が便利だが、EventLoop が設定しづらかったり、IO自体が async 対応してなかったり(つまりIO終わるまで制御を握ってしまう)などの場合、純粋に並列処理したい場合がある。
その場合の方法をメモしておく。

# 方法

“`py
from concurrent.futures import ThreadPoolExecutor

def main():
target_file_list = [
‘file1.dat’,
‘file2.dat’,
]
# 平行して呼び出し
with ThreadPoolExecutor() as executor:
threads = [
executor.submit(
lambda: hoge.some_io_process(tar

元記事を表示

Teamsのステータスを自動で変更する

# 困っていたこと

集中力のゴールデンタイムは誰にも邪魔されたくないのに、チャットで「ちょっといいですか?」とメンションが入ると集中できない。

Teamsのステータスを**応答不可**にすれば通知に気づかなくて済むのですが、
こまめにステータスを切り替えることを**忘れがち**。

#### 朝のこの時間帯だけはなんとしても守りたい。

というわけで毎日同じ時間になれば、Teamsのステータスを変えるスクリプトを作ってみた。

## 環境

Windows10
Teams
Python3.10

## まずは手作業でやってみる

### 1 Teamsを起動する

Windowsキーを押してから、「teams」と打てばこんな感じになる。

![2-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75217/8b648238-184d-6f01-2dec-880931253f41.png)

この後Enterキー叩けば起動される。(起動済みの場合は最前面にくる)

### 2 Teamsの検索に移動

元記事を表示

ぼくのかんがえたさいきょうのGithub Actionsで複数のCloudFormationファイルをCI/CDする方法

terraformになれてたぼくがCloudFormation(CFn)で立ち上げたプロダクトにアサインされてCI/CDをしようと思った時に考えたさいきょうの方法です。
(如何せんCFn初心者なので、全然最強でない可能性ありますがご了承ください。。)

### やりたかったこと
– dev(development),staging(stg),production(prd)など複数環境に手軽にデプロイ(prdはさすがに手軽すぎるのは危険なので、チェック機構は欲しい)
– 手軽にデプロイしたいが、どういう変更が入るか(`terraform`で言うところの`terraform plan`の結果)は知りたい
– 色々カスタマイズできるようにしておきたい

### 実現したこと

> – 色々カスタマイズできるようにしておきたい

下記公式のactionがありましたが、リポジトリがアーカイブされており2年前を最後にメンテナンスされてないようだったので使うことを断念しました…

>AWS CloudFormation “Deploy CloudFormation Stack” Action f

元記事を表示

GoogleColabでweb上のGIFを画像に分解して保存

# コード
GoogleColabのVM内に画像を保存する関係で、大きいサイズのファイルを扱うのは避ける。
また、インスタンスが切れてしまえば保存したデータは全てリセットされる。

画像を保存するディレクトリをVM上に作成
“`python
import os
path_content = ‘/content/img/’ #VM上のディレクトリを指定
if not os.path.exists(path_content):
os.mkdir(path_content)
“`

Googleの画像検索などで画像を開いたときに、”画像アドレスをコピー”したものを`url`に入れる。
“`python
import requests
from PIL import Image, ImageSequence
import io
import numpy as np
url = “” #保存したい画像の画像アドレス
fname_img = “img” #保存したい画像のファイル名
fname_imgext = “png” #保存したい画像の拡張子

response = reque

元記事を表示

簡単にWeb APIを使ってラーメン屋の情報を出そう!!

# WebAPIを使って街中のラーメン屋の情報を取得してみる。

## 環境
OS:Windows 10
言語:Python 3.10
対象WebAPl:ホットペッパーグルメリサーチAPI
ホットペッパー Webサービス

### 今回使うモジュールは、
・Json,requests,random

### 流れとして
1.requestsでラーメン屋の情報を取得する。
2.Jsonファイルを辞書として読み込ませる。
3.ランダムで一軒表示させる。

# まず1,2をやってみる。
“`
import json
import requests

gourmet=’http://webservice.recruit.co.jp/

元記事を表示

【Flask】 import Error DLL load failed while importing _sqlite3

Flaskのチュートリアルをやっていて、sqlite3を使用する際にタイトルのエラーが出た際に解決した方法です

# 開発環境
・Windows11
・VSCode
・conda 4.11.0
・Python 3.9.7

# 解決手順
C:\Users\ユーザー名\\.conda\envs\環境名\Library\bin
を、windowsのpathに通す。

元記事を表示

初心者がRaspberry Pi4 Bを購入後してSlackbotでカメラ撮影するまで

# 0. はじめに
大学院の学生企画でラズパイを触る機会があり、結構面白いことがやれると判明。大学内で使えるslackbotを構築したく、ラズパイを購入しました。やりたかったことは、ラズパイのカメラモジュールを使って、slack上で写真撮影してくれるbotづくり。実験室の機器や生体試料をたまに観察したいときに使う予定です。

成果物はこんな感じ。特定のメッセージに反応して、撮影→slackへの投稿まで全部やってくれる。

|![名称未設定 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269013/febe139f-7d5b-0d81-6fc1-f4bf5e541201.png)
|:-:|

正直何番煎じだよっていう感じなので、該当の記事はありました。しかし多くの記事が古く、様々な方法が混在しているので最新のやり方を収集するのに苦労しました。備忘録として、そして何より「これから似たようなことやるよ!」っていう人に対して少しでも役に立たせられるよう、記事にします。

購入したラズパイは[Raspbe

元記事を表示

DjangoでUnityを動かしたい

# 概要

Unityから吐き出したWebGLは様々な形で利用することができ、
例えばDjangoのようなフルスタックなWebアプリケーションフレームワーク内でも動かすことができます。

Djangoのチュートリアルを参考に立ち上げたアプリケーションの中でWebGLを動かしてみたのでこれをメモします。

# Unityから任意のプロジェクトを吐き出す

前提としてunity内で問題なく動かせるプロジェクトを用意します。
WebGLとして出力しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609338/68ab0fe4-2fec-3cb3-770a-d69f5aa34fe6.png)

# シンプルに静的なサイトとして立ち上げてみる

例えばNodejs(V8)のシンプルなサーバー`http-server`を使ってみると、

と表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

pyenv install xxx が失敗する(Killed: 9)

## 環境
– macOS 11.6, 12.3(arm64)
– homebrew
– pyenv 2.2.5
– gcc Apple clang version 13.1.6 (clang-1316.0.21.2)

homebrewのバージョンはメモ取ってませんでした。ごめんなさい。
## 事象
`pyenv install 3.10.3`としてインストールを試みたところ、ビルドの途中で失敗した。
`/bin/sh: line 1: 24309 Killed: 9 …(略)… make: *** [sharedmods] Error 137`
ビルドの途中で強制終了されているみたい。

## 解決方法
***homebrewをインストールし直す。***
pyenvリポジトリに[issue](https://github.com/pyenv/pyenv/issues/2289)が立っていて、このissueに「homebrewを入れ直したら直った」とのコメントがあった。
試したところ、なぜか分からないが本当に直った。
homebrewのインストール/アンインストールスクリプト

元記事を表示

pandasデータフレーム特定列に対し、条件別で文字列から数値を抽出

↓コンペのデータ前処理で、処理時間のかかるコードを書いてしまったため、反省の意味を込めて共有。。
https://www.nishika.com/competitions/25/summary

# 1. 対象となる処理:
DataFrameのobject型pandas DataFrameにおいて、Object型(文字列型)である特定列から、数値のみ取り出す。

例: 和暦(平成20年, 令和1年)を、西暦(2008, 2019)のように変換。

# 2. 対象データのイメージ
以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194473/cd864483-1e9b-18bb-3fd8-950abeda2be8.png)

# 3. 解決法
以下流れのコードを書きました。
70万行のデータですが、概算2秒弱ほどで処理終了いたしました。
変更前(4.に記載)のコードは10min(600秒)ほどかかりました。

1. 対象列(column)のuniqueな値をキー、
和暦と西

元記事を表示

ABC 069 B – i18nをPython3で解く

# 初めに
「[AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~](https://qiita.com/drken/items/fd4e5e3630d0f5859067)」の各問題の類題をPythonで解きます。
(解法に詰まって調べたとき、C++の解法が多くPythonしか分からない私では参考にできなかったため。)
*競プロ & Python初心者のため、解法やコードの改善例、別解等アドバイス頂けますと大変ありがたいです。

# [ABC 069 B – i18n](https://atcoder.jp/contests/abc069/tasks/abc069_b)

**【問題文】**
`internationalization` という英単語は、`i18n` と略されることがあります。 これは、先頭文字 i と末尾文字 n の間に 18 文字が挟まっていることに由来します。
長さ 3 以上の英小文字のみからなる文字列 s が与えられます。 同様の規則によって s を略してください。

**【制約】**
– 3≤∣s∣≤100 (ただ

元記事を表示

YOLOv5をGoogleColaboratoryで動かして静止画と動画の物体検出をしてみた

## 背景
会社の友人向けにハンズオンでのAI体験会を開催することになりました。画像データを扱うことが視覚的に面白いと思ったのと、環境構築で苦労したくなかったので、YOLOv5をGoogleColaboratoryで動かして、静止画と動画の物体検出にトライしてみました。

## 参考サイト
以下のサイトを参考にさせていただきました。
https://laboratory.kazuuu.net/i-used-yolo-v5-with-google-colaboratory/
https://qiita.com/shoku-pan/items/31bf3c975b73db153121

## 解析ファイルの準備
まず、画像と動画を準備して、それぞれtest.jpg、test.mp4として保存します。ファイル形式はソースコードを修正すれば他の形式でも問題ありませんが、今回はこのファイル形式で進めます。
なお、今回は下記手法・サイトで見つけた著作権フリーの画像で実行しています。

画像:https://ferret-plus.com/337
動画:https://pixabay.com/ja/

元記事を表示

Python: VSCode: 関数名をスネークケース(小文字と_で構成)に変換するショートカットを設定する

Pyhonの関数名とか変数名の付け方って、スネークケース(例: get_user_info)がデファクトスタンダードっぽくて、オブジェクト指向言語メインだった身には新鮮でした。あっちはキャメルケース(例: getUserInfo)メインなので。

やはりみんな混同することがあるようで、前任者から引き継いだPythonコードがキャメルケースだらけだったりします。

リファクタリングする際に変数名とかをスネークケースにしようと思うと結構ハードワークなので、VSCodeのショートカットを活用することにしました。

# VSCodeのキーボードショートカット設定画面を開きます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553715/61fae597-f064-45c1-a983-613ee1532971.png)

# 設定キーワードに「editor.action.」と入力して検索します

![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

[Python] UserWarning: X has feature names・・・の対処法

scikit-learnでpredictを行う際に出力された警告に対し、どのように処理を行ったかを共有させていただきます。誰かのご参考になれば幸いです。

## fit と predict の引数の型を確認しましょう
結論から申し上げますと、引数の型が異なっているので警告が出ています。

警告内容:UserWarning: X has feature names, but DecisionTreeClassifier was fitted without feature names

前提処理
1.訓練データとテストデータを分ける
“`Python
from sklearn.model_selection import train_test_split

# 引数のx,yはデータフレーム型
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.2,random_state = 0)
“`
2.fitの引数は「データフレーム型」
“`Python
from sklearn import tree

mo

元記事を表示

【一分理解】pythonでexcelを操作しよう

## pythonでexcel操作をしよう!
### こんな時に使える
・大量のExcelを管理するとき
・excelに保存したデータでpython動かしたい時

#### 流れ
excelファイルを読み込む
“`python
file = openpyxl.load_workbook(“ファイルのパス”)
“`

中身をいじる
●シート操作
“`python
sheet = file[‘Sheet1′]

file.create_sheet() # シートを新規追加
file.create_sheet(index=0, title=’new_sheet’) # 指定の場所にシートを新規追加
file.create_sheet(index=2, title=’new2_sheet’) # 指定の場所(2番目)に名前を付けてシートを追加
del file[‘new_sheet’]
“`

●セル操作
“`python
# A1セルを取得
cell_a1 = sheet[‘A1’].value

# 各セルに

元記事を表示

【NVIDIA RAPIDS】cuDFライブラリを使ってみた

# 内容
[NVIDIA RAPIDS](https://developer.nvidia.com/rapids)が提供するGPU DataFrameライブラリ [cuDF](https://docs.rapids.ai/api/cudf/stable/)を使ってみました。
[Pandas](https://pandas.pydata.org/docs/)と似たような操作でデータの前処理/加工をGPUで行うことができるみたいです。
CPUで処理するよりも早いとの事で気になったので入れて試してみました。

# 実行環境
– OS
– Windows 10 Home 64bit
– WSL2 Ubuntu 20.04
– Docker 20.10.10
– CPU
– Intel Core i7-7820X
– Memory
– DDR4-3200MHz 96GB
– GPU
– NVIDIA GeForce RTX3060Ti

# cuDFについて
– pipでは提供されていない
– [condaで提供](https:/

元記事を表示

OTHERカテゴリの最新記事