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

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

ディレクトリ・モジュール操作について(pathlib, os, sys)

# この記事で紹介するライブラリ

– pathlib
– os
– sys

# この記事で紹介するライブラリの使用方法

## pathlibの使用方法

| クラス/メンバー | 使用方法 | 動き |
| — | — | — |
| Path() | – | 実行場所のパス取得 |
| Path(\_\_file__) | – | 実行ファイルのパスを取得 |
| resolve() | Path(\_\_file__).resolve() | 絶対パスを取得 |
| parent | Path(\_\_file__).resolve().parent | 親ファイルのディレクトリ取得 |
| joinpath() | path.joinpath(‘./folder/file.py’) | パスの連結 |

## osの使用方法

| クラス/メンバー | 使用方法 | 動き |
| — | — | — |
| basename() | os.path.basename(\_\_file__) | 実行ファイル名の取得 |
| abspath() | o

元記事を表示

2022年からの新しいとりくみ

備忘録を兼ねて日々のプログラミング生活で行ったことの概要メモを作ることにしました。
すでに多少の公開メンタリティも身につけたので、特に始めることへの躊躇のカベはなかったです。

プログラミングをすることが日常になってしまっているのですが、たまに自分のコード体系に質的な大転換があったりして、それはそれで脳内革命というか机上革命という内的激動があったりするのですが、いかんせん人間とは忘れる生物であり、あの時の変化がいつあったのかを遡及できなくなったりします。

また、プログラムとしては、秒単位までは言わなくても日単位でいつの時点で思いついたものかという遡及がしたくなります。日単位により、自分のプログラミングの変化の履歴の時間感覚が身につき、意外と時間感覚がプログラミング・スキルにとって重要だったりします(あまり、経験という肉感的言葉は重視はするものの強調しすぎたくない気持ちがあります)。

どちらかというと人間が意味(Sinn)として理解できる質レベルでの記録が便宜にかなうと思ったので、日記形式となりえるQiitaを選択しました。日本在住であれば、このサイトが一番ではないかとも思いました。

元記事を表示

WordleをPythonに解かせる

## Wordleとは
URL:https://www.powerlanguage.co.uk/wordle/

Wordleは2021年末に公開された,巷で話題の英単語推測ゲームです.お題となる5文字の英単語が存在し,それを合計6回の試行で特定します.

回答者は一度英単語を入力すると,その単語とお題の単語のどの文字が一致しているかを知ることができ,文字も場所も一致している場合は,文字は合っているが場所が一致していない場合は,文字も場所もあっていない場合はで表示されます.

1日1題出題だけされ,なかなか楽しいゲームなのですが,やっぱりコンピュータにも解かせてみたいですよね.ということでWordleをPythonに解かせてみました.

## 5文字の英単語リストを取得する
まず,Wordleのお題になる条件である”5文字の英単語”のリストを作成する必要があります.

元記事を表示

【Django】 django-environでシークレットキーを読み込んだ際に起こりうるエラー

#はじめに
・django-environを使用し、シークレットキーを読み取れなかった時の対処法を書きます。

今回些細すぎるミスにより、4時間ほど解決のために時間を費やしたので、自分への戒めと備忘録として書きます。
また、どの記事にも単純なミスすぎて記載されてなかったので、記事を書きます。

#前提
– Python 3.9.7
– Django 3.2.5
– django-environ 0.4.5
– 仮想環境
– venv

# 解決方法
環境におけるdatabase.ymlを参照できていなかった。今回はcredintialsにdatabase.ymlのデータベースの設定を入れ、参照させることで解消した。

“`
app
├── base
├── config
│ └── settings.py
├── manage.py
├── requirements.txt
└── secrets
├── .env.dev
└── .env.prod
“`
今回、開発環境でシークレットキーを渡したかったため、「.env.dev」ファイルとしています。

“`

元記事を表示

Windows10でpythonを用いた仮想環境の構築方法

## 仮想環境作成
“`
python -m venv [name]
“`
## 仮想環境立ち上げ
### ・Windows
“`
.[name]\Scripts\Activate
“`
### ・Linux
“`
source .[name]/bin/activate
“`
## 仮想環境から抜ける
“`
deactivate
“`
## 仮想環境を削除
### ・Windows
“`
rmdir /s [name]
“`
### ・Linux
“`
rm -s [name]
“`

## ライブラリエクスポート
“`
pip freeze > requirements.txt
“`

## ライブラリインポート
“`
pip install -r requirements.txt
“`
## 動画で確認する

元記事を表示

seleniumインストールに失敗したけどpipアップグレードして解消した

# 記事はこちらに移管しましたmm

【pip】seleniumインストールに失敗したけどpipをアップグレードしたら成功した

元記事を表示

Python3でUUIDを生成する

##はじめに
PythonでUUIDを生成する方法です。
本記事はPython3.8を使用しています。

uuidというモジュールを使ってUUIDを生成するのですが、
Python3では標準ライブラリとしてバンドルされているので、
importしてすぐに使用できます。

https://qiita.com/shimajiri/items/464275c5027ab09bc330

##UUIDとは
UUID(Universally Unique Identifier)とは、世界で同じ値を持つことがない一意な識別子です。

##バージョン1

“`python
uuid.uuid1(node=None, clock_seq=None)
“`

バージョン1は、時刻とMACアドレスを利用したUUIDで、
uuid1はホストID、シーケンス番号、現在時刻からUUIDを生成します。

“`python
uuid.uuid1()
“`

引数なしでも利用可能です。
nodeがなければuuid.getnode()で、ハードウェアアドレスを取得しそれが適用されます。 

clock_seq

元記事を表示

動画圧縮する(MP4 to mp4) on python3

こんにちは.

実験動画を圧縮する機会が増えてきました.

実験の動画を撮影した場合は,拡張子「MP4」で記録されます.
結果を記載するページは「mp4」のみ許可されています.
といっても,自作のwikiなので,拡張子の権限を増やしてやればいいだけなのですが...

まぁ,めんどくさいし,コマンド何回も打ち込むのだるいので,pythonで一気にやらしちゃおう!という内容です.

まず,ffmpegは必須です.
以下のコマンドでインストールしましょう.
※apt-get updateは行っておいた方が良いでしょう.

“`
sudo apt-get install ffmpeg -y
“`

私のPCにインストールしたffmpegのバージョン
少し古いかもしれません.

“`
$ ffmpeg -version
ffmpeg version 4.3.2-0+deb11u2 Copyright (c) 2000-2021
the FFmpeg developers built with gcc 10 (Debian 10.2.1-6)
“`

## ソースコード

“` vid

元記事を表示

地震波形データをPythonで読み込んでみよう

# 本稿の方針
本稿では、地震波形データをPythonで読み込む方法についてご紹介します。

Pythonを使って地震波形データを処理したい方に参考になればと思います。特に、地震の勉強・研究・業務をしてきた方で、Pythonを今まで使ってこなかった方や、反対に、Pythonは使いこなせる方で地震波形データに新たに手を出すような方々を想定しています。ちょっとしたフィルタリングや描画ができるようになったり、データ解析(機械学習を含む)のための基礎となったりしてお役に立てればと思います。

ここでは、自分で試した範囲のことを書いておくつもりです。網羅的な説明はしません。また、Pythonの説明などはしません。

(2022年1月25日追記)限定公開で同僚に内容を確認してもらいましたが、それほど問題なさそうなので、全体公開に切り替えました。

## 環境
Python 3系を使うことにします。今回はPython 3.7.2とObsPy 1.2.1を使っています。

# ObsPyとは
[![alt](https://docs.obspy.org/_static/obspy-logo.

元記事を表示

python async 実行記録

“`python
import asyncio
import time

async def say_after(delay, what):
print(f”{time.strftime(‘%X’)} :{what}”)
await asyncio.sleep(delay)
print(f”{time.strftime(‘%X’)} :{what}”)

async def main():
tasks = [say_after(3, ‘hello’), say_after(2, ‘yeeeei’), say_after(1, ‘ueeeeei’)]
await asyncio.gather(*tasks)

asyncio.run(main())
“`
“`
16:38:20 :hello
16:38:20 :yeeeei
16:38:20 :ueeeeei
16:38:21 :ueeeeei
16:38:22 :yeeeei
16:38:23 :hello
“`

元記事を表示

Jupyter RuntimeErrorの対処方法 asyncio.run() cannot be called from a running event loop

Jupyter自身のイベントループ上で新たにイベントループを開始しようとしたために起こったエラー。非同期処理を実行させたければ、await関数で直接実行させれば良い。

“`python:Jupyterで非同期処理を実行させる
import asyncio
import datetime

async def display_date():
“””現在時刻を5秒間表示する”””
loop = asyncio.get_running_loop()
end_time = loop.time() + 5.0
while True:
print(datetime.datetime.now())
if(loop.time()+1.0)>=end_time:
break
await asyncio.sleep(1)

x : asyncio.run(display_date())
○ : await display_date()
“`
“`
2022-01-25 15:31:57.79

元記事を表示

Python3: 接種状況ダッシュボードのデータを使ってワクチン接種済者をカウントする

デジタル庁の [接種状況ダッシュボード](https://info.vrs.digital.go.jp/dashboard/) のデータを処理して、ワクチン接種済者をカウントします。

データの取得

“`bash
wget https://data.vrs.digital.go.jp/vaccination/opendata/latest/summary_by_date.csv
“`

次を計算します。
>ワクチン2回目接種済者
>ワクチン2回目接種後、6ヶ月が経過した者
>ワクチン3回目接種済者

“`py:count_vaccination.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# csv_read.py
#
# Jan/25/2022
#
import sys
import csv
import datetime
#
from datetime import timedelta

# ————————————————————-

元記事を表示

青空文庫を使ってネガポジ判定をやってみた

# ネガポジ判定とは
文書のネガポジ判定(極性判定)とは、それぞれの文書が肯定的(ポジティブ)か否定的(ネガティブ)かを判定するタスクである。
ここでは抽出した単語のネガポジ判定をするために東北大学乾・鈴木研究室が提供している「日本語評価極性辞書」を活用する。
https://www.cl.ecei.tohoku.ac.jp/Open_Resources-Japanese_Sentiment_Polarity_Dictionary.html

# 実装
必要なライブラリをインポート

“`python
import zipfile
import urllib.request
import MeCab
import pandas as pd
import re
“`

ネガポジ判定に使用するテキストを準備

“`python
# 青空文庫『吾輩は猫である』のファイルをダウンロード
urllib.request.urlretrieve(‘https://www.aozora.gr.jp/cards/000148/files/789_ruby_5639.zip’, ‘789_ruby_

元記事を表示

【Twitcasting】気になるあの配信者の配信開始通知をdiscordに送信方法を考えて実装してみた。

#はじめに
趣味で推しの子がよくツイキャスするけど通知に気づけないからdiscordに投げるBotを作りました。
言語はPythonで書いてます。
記事の内容はほぼGitHubにあるものと同じです。メモ程度です。

実際の稼働してる様子はこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2422677/431677b7-d048-f1d6-6c22-8c287106e785.png)

#入れ方
とりあえず、[GitHub](https://github.com/renit0424/TwitcasNoticeDiscord)にあげてあります。
ダウンロード出来たら`confg.py`を編集して指定された値を入力します。
最後に`main.py`を実行すれば…
たぶん動きます。

元記事を表示

Python Seleniumでスクレイピングする時、エラーが爆発

selenium 4.1.0でスクレイピングした時、エラーが多数発生する。
from selenium import webdriver
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(executable_path=’C:/webdriver/chromedriver.exe’)
driver.get(‘https://www.yahoo.co.jp/’)

元記事を表示

[python] seleniumのdeepL自動化

# 説明
pythonのseleniumをつかってdeepLという翻訳サイトを操作してファイルの中身を自動的に翻訳できたらよいと思って作ったもの。
バグが多くうまく動かないことが多いです
# 実行環境
* Intel(R) Core(TM) i7-8700 6コア12スレッド
* メモリ16GB
* windows10 64bit
* 仮想8コア、物理4コア
* Python 3.8.11
* ANACONDA
* JupyterLab 3.1.7

#コード
## モジュール
“`python:modules
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import time
import urllib.parse
import os
from joblib import Parallel, delayed
from selenium.webdriver.common.by import By
f

元記事を表示

TF-IDFの基本的な考え方と実装方法

# TF-IDF
### 概要
TF-IDF(Term Frequency-Inveerse Document Frequency)は、全ての文書に出現する単語と、一部の文書にしか出現しない単語を区別するための方法である。
Bag of Words(BoW)は各文書の単語ごとの出現回数をカウントしたものであるが、この方法では全ての文書に出現する単語と、一部の文書にしか出現する単語を区別することができない。

### 数式による説明
以降の説明で使用する記号の意味は下記のとおり。

+ $n_{d,t}$ :文書$d$で単語$t$が出現する回数
+ $df_{t}$ :単語$t$が出現する文書数
+ $N$ :全体の文書数
+ $T$ :1つの文書における単語数の合計

#### TF
TFは、「1つの文書の中に現れる全単語の合計出現回数のうち、その1つの単語がどれだけの割合で出現したか」と定量化した指標である。したがって、ある1つの文書の1つの単語に対して定まる指標である。

“`math
TF_{d,t} = \frac{n_{d,t}}{\sum_{t=1}^{T}n_{d,t}

元記事を表示

OTHERカテゴリの最新記事