Python関連のことを調べてみた2022年02月14日

Python関連のことを調べてみた2022年02月14日

Arduino IDE で ESP32 を利用しようとしてpython-serialがなくて動かない件(ubuntu20.04LTE)

Arduino IDE で ESP32 のモジュールを利用しようしてpythonのimport serial が通らなくて困った件があり、解消しましたので、記載します。

Arduino IDE での ESP32 モジュールの利用では、pythonを利用して、
更にimport serialしていますが、動きませんでした。
遅ればせながらの次のことでした。
pythonコマンドは、ubuntu20.04では、python2.7にリンクされています。
しかしながら、python2.7は、2020年1月1日でサポートを終了しており、
必要とされるpython2.7でのpip、およびpipを利用したpyserialのインストールはできなくなっています。

ご自身のほかの環境として、特段python2を利用する必要がないならば、
pythonコマンドが、python2にリンクされていることを修正するために
> sudo apt install python-is-python3

を入れてしまえばpythonコマンドでpython3にリンクされて、
これで、動くようになるということです。

元記事を表示

1.1(1) 日本語をread_csv(encoding=’shift_jis’)で読み見込めない時

日本語を含むcsvファイルを読み込む場合は、`encoding=’shift_jis’`を指定して、`pd.read_csv(‘data.csv’, encoding=’shift_jis’)`と書くのは定石です。
しかし、それでもエラーとなってしまう場合があります。
例えば、以下のようなcsvファイルです。

“`
# 例1: ‘shift_jis’でエラーとなる
clm0 clm1 clm2 clm3
1 Ⅰ APPLE りんご
2 Ⅱ apple リンゴ
3 Ⅲ aPPLe リンゴ
4 Ⅳ Apple 林檎

“`
どれも日本語と英語のように見えますが、`’shift_jis’` ではエラーとなります。
しかし、以下は `’shift_jis’` で読み込めます。

“`
# 例2: ‘shift_jis’でエラーとならない
clm0 clm1 clm2 clm3
1 I APPLE りんご
2 II apple リンゴ

元記事を表示

データサイエンスでWordleに立ち向かう

# 本記事の目的
インターネット上ではWordleというゲームを攻略するための様々な知見が既に見出されていますが、今回はデータサイエンスを駆使してWordleに立ち向かってみました。
記事にするとそれなりに長い解析をしているので、**結論のみを知りたい方は後半 (まとめ) までスキップ**をお願いします。

# What’s Wordle?
![aaa](https://upload.wikimedia.org/wikipedia/commons/e/ec/Wordle_196_example.svg)

– [Web](https://www.powerlanguage.co.uk/wordle/)で遊べる日替わりの英単語当てゲームです。
– ルール
– システムが独自の辞書から選択したアルファベット5文字の英単語を、プレイヤー (あなた) は最大6回の試行で推測します。
– 各試行ではプレイヤーが入力した5文字のアルファベットからなる英単語を受けて、真の単語にたどり着くためのヒントが表示されます。
– 真の単語と同じ位置にそのアルファベットが入力され

元記事を表示

Seleniumのチートシート

Seleniumのチートシートをまとめてみた。

#####ライブラリのインポート、ドライバ・ブラウザの開始

“`Python
#1.ライブラリのインポート
from selenium import webdriver

#2.ウェブドライバを開始する
# Chromeの場合
chromedriver = “C:/tests/chromedriver.exe”
driver = webdriver.Chrome(executable_path = chromedriver)
# Firefoxの場合
geckodriver = “C:/tests/geckodriver.exe”
driver = webdriver.Firefox(executable_path = geckodriver)
# Internet Explorerの場合
iedriver = “C:/tests/IEDriverServer.exe”
driver = webdriver.Firefox(executable_path = iedriver)
# Safariの場合(Safariの場合、ドライバが

元記事を表示

pythonでexcelファイルの正規表現置換をする

excelの内容を正規表現で置換したかった。
ある列に、数字をカンマで区切った内容を入れてあるのだが、
最後がカンマで終わっている場合、カンマを取りたい。

たとえば、

“`
123, 124, 222, 234
333, 444, 555, 666,
111, 222, 333
“`
みたいな場合、2行目の666, のカンマをとって

“`
333, 444, 555, 666
“`
としたい。

pythonの正規表現は使ったことがあり、
最初は

“`python
resut = pattern.match(“,$”,s1)
“`

という風にしたのだが、なぜかマッチしない。
findallを使ったらマッチした。

置換はもっとスマートな方法があるかもしれないが、
最後の一文字を落とす、という風にした。

“`python:rep.py
import glob
import os
import openpyxl
import re
import sys

pattern = re.compile(‘.*,’)
bookname = sys.argv[1]
new

元記事を表示

Minecraftのserver起動のCommand入力を出来るだけ楽にしたい

こんにちは。里芋のすり身です。
突然ではありますが、
「Minecraft」(以下マイクラと表記)というゲームは好きですか?
みんな好きだと思ってます。
ただ、マイクラサーバーをCommandで入力するとき、

“`
$ ~~~ % cd ~~~/~~~/~~~/~~~/Minecraft/サーバー用ファイル
$ ~~~ % java -Xmx~G -Xms~G -jar server.jar nogui
“`
のような、Command入力していませんか?
これ、正直面倒ですよね。そこで、楽にしてみたいと思って、ちょこっとプログラミングを書いてみました。よければ見ていってください。

#Minecraftの事前準備
Minecraftのインストールはお済みでしょうか?この記事はマインクラフトサーバーを自分で立てようと思ってない方以外は役に立てないと思うので、その点ご留意を。
###本当に簡単なサーバーの立て方の説明
Minecraftからダウンロードしたserver.jarを[Application Support/Minecraft/サーバー用ファイル]の中に突っ込んでjarフ

元記事を表示

[ Chrome OS / Debian ] Tesseract + PyOCR で日本語 OCR 環境を構築する

# はじめに

## a. 記事概要

* タイトルの通り、Chromebook 上で Tesseract + PyOCR で日本語 OCR 環境を構築します。

## b. 動作確認環境

“`bash
# OS
$ cat /etc/os-release
PRETTY_NAME=”Debian GNU/Linux 11 (bullseye)”
NAME=”Debian GNU/Linux”
VERSION_ID=”11″
VERSION=”11 (bullseye)”
VERSION_CODENAME=bullseye
ID=debian
HOME_URL=”https://www.debian.org/”
SUPPORT_URL=”https://www.debian.org/support”
BUG_REPORT_URL=”https://bugs.debian.org/”

# Python
$ python –version
Python 3.9.10
“`

# インストール手順

## 1. Tesseract OCR

下記コマンドを実行し、Tesseract

元記事を表示

Pytorchを理解したい。足し算をするだけのPytorchモデルをつくる。

#足し算をするPytorchモデルを作ります

![baron007.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/098c72f2-b060-bd2b-63bd-722115451031.jpeg)

#Pytorchを理解したい
機械学習モデルの多くはPytorchやTensorFlowで書かれています。
機械学習モデルに触れてみたいけど、Pytorchコードの部分がなんか「むにゃむにゃむにゃ。。。」という感じ。

#シンプルなもので理解してみる
小学校の算数も、数を数えたり足し算をすることから始めた気がするので、
とりあえず、入力に1を足すモデルを作って理解してみます。

“`python
device = “cuda” if torch.cuda.is_available() else “cpu”

class AdditionModel(nn.Module):
def __init__(self):
super(AdditionModel, self)

元記事を表示

firebase emulator + Python

Firebase emulator がリリースされていて とても開発がはかどりました。
まだ情報がすくないのでPythonからの利用方法をまとめます。

## Firebase emulator

firestore をメインのDBとして使用しているので、単体テストで色々なテストデータを登録して作成するのに、ローカルでemulator が動かせると便利です。

下記のような仕組みが準備されているので、まずローカルにemulatorをInstallする

https://firebase.google.com/docs/emulator-suite/install_and_configure?hl=ja

開発言語自体はPythonを使いたいのですが、emulatorは node, javaで動いているので事前にインストールしておく必要があります。

“`shell
% node –version
v16.13.2
% npm install -g firebase-tools

% firebase login
Already logged in as {$USER}
“`

元記事を表示

サーバレス(Oracle Functions)でWeb動的サイトを構築しました

#本投稿の背景

フットサル大会の運用をシステム化([ こちらの記事 ](https://qiita.com/kngsym2018/items/514bf738ce1c6a1c81ba))したのですが、
2020年3月からコロナの影響でフットサルの大会は実施されていません。。

この状況で以下を考えました。
**・コロナで大会が中止。システム運用している仮想マシンは24時間 x 365日稼働する必要なし**
**・大会結果を参照したい人がいれば、そのタイミングで参照できればよい**
**・内容はチーム順位、得点者を表示するシンプルなものなので、Wordpressでなくてもよい**

それを解決するのが、「サーバレス」と思ったので、
実験的にOCIでサーバレス「Oracle Functions」でWeb動的サイトを作ってみました。

※息子たちがF1マシンの絵をかいていたので、
 それを使ったWebサイトを作ろうと思ったのも理由です。

#構成図
・DBは Autonomous Databaseを使用 ※無料枠の[Always free]
・Oracle Functionsでは(「チーム

元記事を表示

ステンレス板の欠陥分類

#1. はじめに
こんにちは。Aidemy Premium Planデータ分析コースの鈴木です。

 私は現在製造業で機械設計を行っています。日本の製造業はまだまだAI技術の導入が遅れていると言われており、今後も製造業での設計過程や製造過程にて機械学習や深層学習を取り込んだ技術が更に増えていくと想定しています。私自身、製造工程で不良解析を行った経験がありますが、その当時は自動化がされていなかったり、各工程でのデータ非常に少なく、とても解析に時間が掛かりました。よって不良率の原因を探るに当たって、ラインの自動化や各工程でのデータが得られてれば、何が起因の不良かを解析していくにあたり、効率良く進められると思いました。
 そこで私は不良分類というテーマにて、機械学習を行っていきたいと思います。

#2. 学習データ
SIGNATEの練習コンペである、ステンレス板の欠陥分類データを使います。
予測する欠陥の種類は下記7種類あり、データから7種類に分類します。
(1=Pastry,2=Z_Scratch,3=K_Scatch,4=Stains,5=Dirtiness,6=Bumps,7=Oth

元記事を表示

「新・明解Pythonで学ぶアルゴリズムとデータ構造」で勉強日記#7

【出典】[「新・明解Pythonで学ぶアルゴリズムとデータ構造」](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0-%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0%E6%9C%9B%E6%B4%8B/dp/4815603197/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1BG3JS7CKMZA0&keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%

元記事を表示

pythonの`next`関数は、iteratorから次の要素を取得してくれるものでした

pythonの`next`関数は、iteratorから次の要素を取得してくれるものでした

“`python:test.py
list_a = [1,2,3,4,5]
iter_a = iter(list_a)
print(next(iter_a))
print(next(iter_a))
print(next(iter_a))
print(next(iter_a))
print(next(iter_a))
“`

以下のように実行する

“`
$ python test.py
1
2
3
4
5
“`

socket通信でiteratorを扱う時とかに出てくる様子

# 参考

https://docs.python.org/ja/3.8/library/itertools.html

元記事を表示

SMTPLIBを使ったGmailの送信サンプルコード

SMTPLIBを使ったGmailの送信サンプルコードです。

![gmail.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/640359/1a838e43-957a-bd1c-ad9b-b9541b1b69fe.jpeg)

#####ライブラリのインポート

“`Python
import smtplib, ssl
from email.mime.text import MIMEText
import schedule
import time
import openpyxl as px #Excelのメーリングリスト取得用
“`

#####Gmailの設定・ファイルの読込

“`Python
# Gmailの設定
mail_from = “genbaneko@gmail.com”
app_password = “genba1234″

# メールの送信先
filepath = ‘customerlist.xlsx’
wb = px.load_workbook(filename=filepath

元記事を表示

PyOCRを使ったOCRのサンプルコード

PyOCRを使ったOCRのサンプルコードです。

![ocr.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/640359/1333b18a-01fa-c7dd-25ab-ae6492409bcc.jpeg)

#####ライブラリのインストール

“`Python
pip install pyocr #Python用OCRライブラリ
pip install tesseract #GoogleのOCRエンジン ※再起動必要
pip install pdf2image #PDFを画像ファイルに変換
pip install pillow #画像処理用ライブラリ

“`

#####OCRの実行

“`Python
from PIL import Image #画像処理ライブラリ
import sys #システムパラメータ
import pyocr
import pyocr.builders
import pdf2image

# OCRツール探索(ここは決まり文句)
tools = pyocr.get

元記事を表示

ReportLabのチートシート

ReportLabのチートシートのチートシートです。

“`Python
# ライブラリのインポート
from reportlab.pdfgen import canvas #PDFファイル作成
from reportlab.lib.pagesizes import A4, portrait #A4ポートレイト
from reportlab.pdfbase import pdfmetrics #メトリクス制御(フォントなど)
from reportlab.pdfbase.ttfonts import TTFont #フォント指定
import os

# ユーザのデスクトップのディレクトリを取得
file = “sample.pdf”
file_path = os.path.expanduser(“~”) + “/Desktop/” + file

# A4の新規PDFファイルを作成
page = canvas.Canvas(file_path, pagesize=portrait(A4))

# フォントの読み込み
pdfmetrics.registerFont(TTFont(“A

元記事を表示

PyPDF2のチートシート

PyPDF2のチートシートです。あんま需要ないかな…(小声)

#####ディレクトリ内のPDFファイルをすべて結合

“`Python
import PyPDF2
import glob #特定のディレクトリ(ファイル)を処理
import os

def merge_pdf(dir_path, dst_path):
dir = glob.glob(os.path.join(dir_path, ‘*.pdf’))
dir.sort() #昇順に並び替え

merger = PyPDF2.PdfFileMerger()
for i in dir:
if not PyPDF2.PdfFileReader(p).isEncrypted: #暗号化されたファイル除外
merger.append(i)

merger.write(dst_path) #PDFファイルを書き出し
merger.close()

merge_pdf(‘d/pdf’, ‘d/sample.pdf’)
“`

#####指定して結合

元記事を表示

Beautiful Soupを使ったWebスクレイビングのサンプルコード(気象情報をcsvにエクスポート)

Beautiful Soupを使ったWebスクレイビングのサンプルコード(気象情報をcsvにエクスポート)です。

![scraping.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/640359/15a5ba83-2277-47d4-742a-efa148c23802.jpeg)

#####ライブラリのインポート

“`Python
import os #os操作
import datetime #日付・時間を操作
import csv #csv操作
import urllib.request #URLを開くためのライブラリ
from bs4 import BeautifulSoup
“`

#####関数を作成(文字列を数値に変換)

“`Python
def str2float(weather_data): #文字列を数字(float)に変換
try:
return float(weather_data)
except:
return 0
`

元記事を表示

Seleniumを使ったWebスクレイビングのサンプルコード(Google検索結果をcsvにエクスポート)

Seleniumを使ったWebスクレイビングのサンプルコード(Google検索結果をcsvにエクスポート)です。

![seleniumu.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/640359/8bea8fc2-0459-b928-4a2a-3512d58e3b82.jpeg)

#####ライブラリのインポート

“`Python
import os
import csv
from selenium import webdriver
from selenium.webdriver.common.by import By #要素を選択
from selenium.webdriver.common.keys import Keys #Keyを返す
from selenium.webdriver.support.ui import WebDriverWait #明示的待機
from selenium.webdriver.support.expected_conditions import pres

元記事を表示

MeCabを使ったキーワード抽出のサンプルコード

MeCabを使ったキーワード抽出のサンプルコードです。

#####ライブラリのインポート

“`Python
import MeCab
import ipadic #IPA辞書
import collections #コンテナデータ型
import seaborn as sns #グラフ化
import matplotlib.pyplot as plt #グラフ化
“`

#####文書ファイルの読込
エンコードを指定しないとエラーになる可能性があるらしい。

“`Python
f = open(‘C://Python/genbaneko.txt’ ,encoding=”utf-8_sig”)
text = f.read()
f.close()
“`

#####MeCabで頻出単語数カウント

“`Python
#MeCabで分割
m = MeCab.Tagger (‘-Ochasen’) #茶筅、形態素解析ツールのひとつ

node = m.parseToNode(text) #単語の品詞や詳細情報を取得
words=[]

#単語の数カウント(Top10)
c = c

元記事を表示

OTHERカテゴリの最新記事