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

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

[Python]テキストファイルから特定の行を取得

# 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [サンプルテキストファイル](#サンプルテキストファイル)
– [行番号で指定した行を取得](#行番号で指定した行を取得)
– [行ごとに分割したリストから取得](#行ごとに分割したリストから取得)
– [linecacheで取得](#linecacheで取得)
– [最初の行と最後の行を取得](#最初の行と最後の行を取得)
– [最初の行](#最初の行)
– [最後の行](#最後の行)
– [特定の文字列が含まれる行を取得](#特定の文字列が含まれる行を取得)
– [開始行と終了行を文字列で指定し、その間の行を取得](#開始行と終了行を文字列で指定しその間の行を取得)
– [参考](#参考)

# はじめに
– 今回はpythonでテキストファイルから特定の行を取得してみたいと思います。
– 以下の環境で動作確認をしています。
– python: Python 3.11.0
– os: macOS Ventura 13.0
# サンプルテキストファイル
以下、今回用意したサンプルテキストファイルです。

元記事を表示

[Python]ファイルの読み書き操作

# 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [ファイルの書き込み](#ファイルの書き込み)
– [open関数でファイルを開く](#open関数でファイルを開く)
– [with文でファイルを開く](#with文でファイルを開く)
– [書き換えと追記](#書き換えと追記)
– [改行を入れる](#改行を入れる)
– [writelinesメソッドでリストを書き込む](#writelinesメソッドでリストを書き込む)
– [ファイルが存在しない場合のみ新規作成して書き込む](#ファイルが存在しない場合のみ新規作成して書き込む)
– [print関数で書き込む](#print関数で書き込む)
– [ファイルの読み込み](#ファイルの読み込み)
– [readメソッドで全文を読み込む](#readメソッドで全文を読み込む)
– [readメソッドで文字数を指定して読み込む](#readメソッドで文字数を指定して読み込む)
– [tellメソッドで現在位置を取得](#tellメソッドで現在位置を取得)
– [seekメソ

元記事を表示

PythonのNetworkXのUnionFind(DSU)の特徴のメモ

# 最初に

AtCoderのPythonで使える`networkx`の`UnionFind`のメモです。
AtCoderで使えるけれど、あまり速くない気がします。

`networkx`の`UnionFind`をRubyに移植したい機会があり、
実装を見る機会があったので、特徴をまとめたいと思います。

ただ、普段Pythonを使わず、Pythonの用語じゃないかもしれないので、違ってたらコメントでも修正でも書いてもらえたら、嬉しいです。

# UnionFindの特徴

DSU(disjoint set union)とも言いますね。

出来ることは主に
– 要素の結合して、同じグループとする。
– それぞれの要素が同じグループにいるかどうかを素早く確かめる。

ですね。

# 主なメソッドの特徴

主なメソッドの特徴を書いていきます。

## `__init__`

インスタンスを作るとき、初期化はリストや範囲型の変数を引数で渡します。
`for`文で回せるイテラブルなものは引数にとれます。
何も引数を渡さなければ、空リストと同じ扱いです。
引数にとるものは、グラフの要素(node

元記事を表示

BertJapaneseTokenizer を用いる際に必要なライブラリ

#### BertJapaneseTokenizerをhugging faceのcl-tohokuのbartモデルを利用する際に必要なライブラリのメモ

###### mecabとfugashiが使えればOK

“`.tsx:Bash
pip install mecab-python3
pip install unidic
pip install ipadic
pip install fugashi

“`

元記事を表示

VSCODEを使ってFlaskを使えるように環境を作った方が確実

先日GitHubで公開したプログラムに、GUIを付けようとWeb開発環境を作っていました。
virtualboxにインストールしているUbuntu22.04を使って、python開発環境を作りました。

既にUbuntuにpython3が、インストールされている状態です。
その後、Jupiternotebookをインストールしていました。
でも、ネットで見つけた記事のように、インストールができた確認ができずネット検索を続けていました。
その様子をまとめていますので、こちらの記事も併せて読んで頂けましたら幸いです。

https://zenn.dev/masaru21/articles/285ff4c3e0d123

今回は、下記の記事を見つけました。
この記事に従って、勉強しました。

https://atmarkit.itmedia.co.jp/ait/articles/1807/24/news024.html

そして、この画像のように、同じ内容を実行できました。
![スクリーンショット_20221106_102826.png](https://qiita-image-store.

元記事を表示

pyenvから3.11をインストール

pyenvをアップデートしたら3.11が追加されていました。

“`shell
$ pyenv update
$ pyenv -v
pyenv 2.3.6
$ pyenv install –list | grep ” 3.1[0-9]”
3.10.0
3.10-dev
3.10.1
3.10.2
3.10.3
3.10.4
3.10.5
3.10.6
3.10.7
3.10.8
3.11.0
3.11-dev
3.12.0a1
3.12-dev
“`

早速インストールしてデフォルトにしました。

“`shell
$ pyenv install 3.11.0
$ pyenv global 3.11.0
$ pyenv rehash
$ pyenv versions
system
3.10.7
* 3.11.0 (set by /Users/k.abe/.pyenv/version)
“`

高速化が気になったのでクラスメソッドさんの記事を参考にパフォーマンスを測ってみました。参考にしたブログは[こちら](h

元記事を表示

【Python / Pyxel】Webで遊べてSNSに共有できる,レトロゲームを作ってみた.

![image_home.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2952428/6d5275b8-2284-680b-ebe4-af81e09a7e2b.png)

# はじめに

はじめまして,
[42tokyo Advent Calendar 2022](https://qiita.com/advent-calendar/2022/42tokyo)の8日目を担当する、changです.
今回は,Python向けのレトロゲームエンジンであるPyxelを使って,簡単なミニゲームを制作しました.Pyxelはゼロベースで学習しながらの制作でした.その際に学んだこと,役に立った知識や文献等を,時系列を追って簡単にまとめます.尚,今回はサウンドや効果音周りにまでは手を広げず,あくまでも最低限の基本要素のみとさせていただきます.
Pyxelをゼロから始めてみたい方の参考になれば幸いです.

# 目次

1. [Pyxelとは](

元記事を表示

Pythonでクリックしたスクリーン上の座標を求める方法のメモ(pynput)

# Pythonで、クリックした画面上の座標を求める方法

※ Pythonに関しては最低限の知識がある方向けです。

`pynput`は外部パッケージなので、pip等を用いインストールします。

“`
pip install pynput
“`

インストールしたら、次のコードを動かせるようになります。

“`python:cursol.py
from pynput.mouse import Listener

def on_click(x, y, button, pressed):
if pressed:
print(‘{:5.1f}, {:5.1f}’.format(x, y))

with Listener(on_click = on_click) as listener:
listener.join()
“`

クリックで押された時に離れた時に、定義された`on_click`が呼ばれます。

第1引数`x`は、普通のx軸。左端が0。
第2引数`y`は、下方向のy軸。上端が0と。
第3引数は、``。

元記事を表示

【Python】HDF5で日本語出力ができなくて困った件

## 背景
HDF5で日本語を保存したとき
` b’\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86’`
のような出力になってしまい困っていたのですが、解決できまちた

が、より良い方法があればご教授いただけると幸いです٩( ‘ω’ )و

そしてPythonを普段使わないのでマズイことしてたらご指摘くださいませ

## バージョン情報
python:3.6.1
h5py:2.7.0
※ Dockerで動かしています

## コード
出力時に`decode(‘utf-8’)`でデコードを行うことで解決できました。
“` python
import h5py

with h5py.File(‘sample_dataset.hdf5′, mode=’w’) as f:
# vlen=str でないとUnicode文字が使えないので注意
str_dtype = h5py.special_dtype(vlen=str)

dataset = f.create_dataset(
‘str_dataset’, shape=(1,1), d

元記事を表示

自動微分に再入門する(2)

## 概要

この記事は[自動微分に再入門する(1)](https://qiita.com/nisim/items/489af9055afc88c93d13)の続きです。

今回はPython(PyTorch)で自動微分を実際に使ってみます。

なお、本記事は[PyTorch](https://github.com/pytorch/pytorch)の[チュートリアル](https://github.com/pytorch/tutorials/blob/master/beginner_source/examples_autograd/polynomial_autograd.py)を参考にしていますのでそちら参照しながら読み進めてください。

## 関数のフィッティング

データから関数のフィッティングを考えます。データは$\sin(x)$から生成します。

具体的には$[-\pi, \pi]$の範囲で$\sin (x)$の値を等間隔で2000個計算したものがデータとして与えられているとします。

散布図にするとこんな感じです。[^ 1]

[^1]: 実際にはデータ数は2000個なので

元記事を表示

複数ファイルの一括読み込みとデータフレームの作成

■ライブラリのインポート
“`python
import pandas as pd
import glob
“`

■一括で読み込み
“`python
file_paths = glob.glob(“天気\*.csv”)
df = pd.DataFrame()
for file in file_paths:
tmp = pd.read_csv(file, encoding=’cp932′)
df = pd.concat([df,tmp])
“`

以上がファイル読込とDFの作成(連結)方法。

おまけ
読込ファイル名などをカラムとして指定したい場合
※今回だと都市名ファイルをスライスして抽出
“`python
file_paths = glob.glob(r”天気\*.csv”)
df = pd.DataFrame()
for file in file_paths:
tmp = pd.read_csv(file, encoding=’cp932′)
tmp[“都市”] = file[-7:-3] #ファイル名の一部をカラム追加したい場合はココ

元記事を表示

[Whisper+ESPnet2(VITS)]音声合成システムを作った備忘録

# 概要
初めての投稿+初めてのMarkdown記法なので読みにくかったら申し訳ないですが、備忘録+結果報告として残しておきます。
youtubeの音声データを用いているので、問題があれば削除します。
40分程度の雑な作りの学習用データでファインチューニングすればここまで行けるよ!ってイメージで結果だけ見ていただいてもかまいません。

以下の2つの構成で、テキストからの音声合成システムを作りました。
1. 収集した音声用データ(一人の音声)を、Whisperを用いて学習用データを作る
2. ESPnet2を用いて学習

今回は2.の部分は以下の記事のまま実行したので、メインで書くのは1.の部分となります。2.の部分は[以下の記事](https://qiita.com/RRR_troisR/items/6288b9bdc6e725aa8440)を参照してください。
ここでは解説しない知識なども載っているので、こちらをまず読むことをお勧めします。

https://qiita.com/RRR_troisR/items/6288b9bdc6e725aa8440

# Whisperと

元記事を表示

インスタンスの負荷状況をリアルタイムにプロットする

![vmstat-real-time.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261594/c9fcd78c-a16c-bef5-0d95-0be11d462449.gif)

## 概要
業務でEC2のインスタンスサイズの選定を行う機会がありました。
選定にあたって、開発環境のインスタンスに負荷をかけ、その負荷状況から本番のインスタンスで許容したいアクセス数にはどのくらいのリソースが必要かをある程度の見積もりとして出す、ということをしてみました。

その過程でインスタンスの各種統計情報をローカルに落として手元にプロットしてみたので備忘録として記しておきます。

方針としては、
– インスタンスにSSH接続
– “`vmstat“`にて統計情報を取得
– 上記をローカルのファイルに追記
– ローカルでファイルをwatchしておいて、更新をプロットに反映

という手順で行ってみました。

~~EC2ならcloudwatch logs agent使えばいいのでh~~ 聞こえませんね。

## 統

元記事を表示

家庭教師がオンライン授業のためのホワイトボード共有サイトを作ってみた

## 前提
コロナ禍の状況で、zoomを使ってオンライン授業をしていたが、使いにくかったので、自分で作ることにしました。
[ボードミート](https://board-meet.com/ “ボードミート”)

## 技術
**バックエンド**
— 言語
– Python3

— フレームワーク
– Django 3.0.6

**フロントエンド**
— 言語
– CSS
– Javascript
– HTML

— フレームワーク
– jquery
– materiallize.css

**インフラ**
– AWS EC2
– AWS S3 storage
– AWS Route53

## アーキテクチャー

![スクリーンショット 2022-11-01 18.48.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1860891/9ab885ca-2127-3908-bec2-4ce2e87d8942.png)

## 工夫した点
– webRTCを使ってシグナリングをする際に、複数人

元記事を表示

esptoolでESP32にファームウェアを書き込む方法

## はじめに
windowsを使っている人だと, 最初使うであろうIDE 「uPyCraft」ですが, いろいろと不調が起こりやすく使いにくい。
なので今回は, esptoolコマンドを使ったESP32のセットアップを説明します。

## 準備
pythonのpipインストールを使い, esptoolコマンドをインストールします。

##### ・pythonのインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2728179/5f137a33-2f7c-d5c2-27ba-131ae05d0578.png)

Menuの「Downloads」にホバーし, 「Python3.11.0」をクリック
詳しい手順↓
https://www.python.jp/install/windows/install.html

##### ・esptoolのインストール
“`
pip install esptool
“`

## ESP32にファームウェアをインストール
1. ESP32

元記事を表示

Pythonにおける日本(東京)時刻の取得 ※Google colabでdatetimeを使用

# Pythonにおける日本時刻の取得について書く。

※2022/11/1 09:00 環境に関して追記。

*このコードはGoogle colabで使用することを想定しています。*

## 目的
**Google colab上で日本時間を取得して格納すること**

まず一般的に現在の時刻を取得する方法は下記のコードである。
“`python
import datetime
now = datetime.datetime.now()
“`
しかし、これは**UTC時刻**であり、**日本時刻**とは違います。
Google Colabでは協定世界時をデフォルトにしているため、これを日本時間に直す必要があります。

## 日本時間の取得方法

“`python
import datetime
from pytz import timezone
now = datetime.datetime.now() #現在時刻生成
now = now.astimezone(timezone(‘Asia/Tokyo’)) #タイムゾーンを東京に
“`

上記を付け加えることで、**

元記事を表示

ツイッターの自動懸賞応募botを作るまで python 

pythonを学び始めて3週間経った 基礎構文なども身についてきたため、なにか作りたいと思いアイデアを探っていたところ、
どうやらツイッターにおいてアカウントを自動bot化し、自動でフォローなどが出来ると知り、懸賞ツイートに自動で応募出来ないかと思った

調べてみるそういうコードがちらほら見つかるが、どうやらリツイートされたものまで拾ってきて、さらにはそのリツイートした全く関係ないユーザーをフォローしてしまうコードであったり、以下のようなツイートへの対処はどのコードも考えられてなかった

プレゼント企画ツイート(特に認証アカウントの)にはフォロー&リツイートをすれば参加できるものが圧倒的に多い。ただ「こちらのアカウントも併せてフォローしてください!! @~~~ @ー----」 というように企画に関連するユーザーのフォローも促すツイートもちらほら見かける。

公式アカウントのプレゼント企画は当選確率は低いかもしれないが、信憑性が高いので逃したくない

今回はこういうツイートにも対応しているような、メンションを正規表現で抽出してフォローするようにしたいと思う

### BOTを作る3つの流

元記事を表示

アルゴリズム実技検定(PAST) 第11回 E問題 Python解答例(二分探索)

SupershipでVPoEしている名畑です。

「[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee70ad)」と「[アルゴリズム実技検定(PAST) 第11回 D問題 Python解答例(Union-Find使用と不使用)](https://qiita.com/nabata/items/013c2fed8386967daa3f)」の続きとして、アルゴリズム実技検定(PAST)第11回のE問題の私の解答例(Python3)を公開します。

## 第11回の過去問題全部

– [第11回](https://atcoder.jp/contests/past202206-open)

## 第11回 E問題 変わった数列(7点)

### 問題

– [E – 変わった数列](https://atcoder.jp/contests/past202206-open/tasks/past202206_e)

### 私の言語

– Python (3.8.

元記事を表示

PythonでOpenCV with CUDAを使う方法

## 概要

pip経由でOpenCVをインストールすると使用できないモジュールや機能がありますが、GPU利用もその一つです。公式ドキュメントや参考文献を見ながらOpenCVをC++からビルドしてPythonでGPUを使用できるようにします。

## OpenCV with GPU

OpenCVでGPUを使うことができます。もう少し具体的に言うとOpenCVで用意されているCUDAモジュールを使用することでNVIDIA GPUを使うことができます。他にもOpenCLを使うこともできたり細かい話は色々ありますが詳細は割愛します。

## pipでインストールしたOpenCVには制限がある?
PythonでOpenCVを使う場合、pipを使って下記のコマンドでインストールすると思います。

“`shell
pip install opencv-python
“`

または

“`shell
pip install opencv-contrib-python
“`

このようにpip経由でインストールされたOpenCVではCUDAを使用することができません。例えば次のようなC

元記事を表示

Pythonの関数デコレータに入門する

## 概要

Pythonを使っていると`def`の上部に@がくっついていることがありますよね。

“`python

@main.result_callback()
def run(a, b):
….
“`

これ、関数デコレータ(以下、デコレータ)と呼ばれるものらしいのですが、調べてみてもよくわからないし、使い道もサッパリだったので無視してました。

だがしかし。

大量にデコレータがついているソースコードに遭遇してしまい、どうしても理解しないといけない状況になりました。

仕方なく重い腰をあげて勉強してみます。

## デコレータの基本の「き」

デコレータの最低限の動きを確認するために次のコードを実行してみます。

“`python
def decorator(f):
def inner():
print(‘before’)
retval = f()
print(‘after’)
return retval
return inner

@decorator
def example():
print(‘insi

元記事を表示

OTHERカテゴリの最新記事