potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。

Python 3

Python3 ディレクトリ内のファイル名をJSONへ出力する

ディレクトリ内のファイル名をJSONへ出力するサンプルコードです。pathlib、jsonを使用しています。 すべてのファイルを列挙する import json from pathlib import Path # ファイル名を取得するディレクトリのパス dir_path = Path(r"C:\Windows") # 作成す…

Python3 配列の正規表現と一致する部分を数える

配列の正規表現と一致する部分を数えるサンプルコードです。collections標準ライブラリのCounterクラスを使用しています。 import re from collections import Counter values = ("ab1111", "ab1112", "ac2111", "ac2112", "ad2112", "ad2113") #正規表現パ…

Python3 配列から正規表現の一致部分が重複しない要素を1つずつ抜き出す

配列から正規表現の一致部分が重複しない要素を1つずつ抜き出すサンプルコードです。辞書型dictがキーと値のタプルで初期化でき、キーの重複する値を自動で上書きすることを利用しています。 import re #元から重複しないのでセットとして用意 #リスト[...]…

Python 3 イテレーターを任意の個数複製する(itertools.tee)

あまり使わない関数ですが、標準ライブラリのitertools.tee関数を使うとあるイテレーターから任意の個数の独立したイテレーターを作成できます。イテレーターは要素の取得のみで取得位置を戻せませんが、この関数を使えばある位置のイテレーターを保存できま…

Python 3.8 基本的なデコレータサンプル集

2021/3/10:この記事は別のブログで投稿した記事を移動したものです。 Python 3.8用の基本的なデコレータのサンプル集です。デコレータのテスト用に作成したコード一覧でもあります。 関数をそのまま呼び出すデコレータ 関数の引数をある定数のみにするデコ…

Python 3.8 デコレータ(decorator)の基本的な動作

2021/3/10:この記事は別のブログで投稿した記事を移動したものです。 Python 3.8にはデコレータと呼ばれる機能があります。代表的なものは@staticmethodや@classmethodであり、@名前として関数やクラスの前に付けて使われます。 このデコレータ、実態は関数…

Python 3.4 Windowsクリップボード操作クラス

Python 3.4からAPIをがしがし呼び出してWindowsのクリップボードを操作するクラスです。tkinterを使った書き込みが出来なかったので勉強がてら作ってみました。ウィンドウ関係の関数は敢えて外してあります。 大雑把な更新履歴 ソースコード サンプルコード …

Python 3.8 チップス

2021/3/10:この記事は別のブログで投稿した記事を移動したものです。 Python3を触っていてエラーが発生したり調べたことのひたすらメモです。短いもの主体なのでチップスの名前を使っています。 arrayはリスト内包記法でリストに変換される ctypesにはmemmo…

Python 3.8 スライス関係の覚書

2021/3/10:この記事は別のブログで投稿した記事を移動したものです。 Python 3.8のスライス操作a[1:2:3]、スライスクラス<class 'slice'>、__getitem__メソッドに関する覚書きです。主な用語は公式ドキュメントの6.3.3. スライス表記 (slicing)、6.17. 演算子の優先順位、3</class>…

Python 3.4 RubyのDir.chdir(path) {...}様の処理

はじめに Python 3.4(3?)の__enter__、__exit__を使うとRubyのDir.chdir(path) {...}の様にブロックを抜けたらカレントディレクトリを元に戻す様な処理も簡単に書けます。また、contextlib.contextmanagerデコレーター(3.4リファレンス)を使うこともで…

Python 3.4 あるディレクトリに存在するファイルの名前からShift_JISで表現できない文字を削除する

あるディレクトリに存在するファイルの名前(UTF-16)からShift_JISで表現できない文字を削除します。実際にはファイル名をUTF-16で取得して、Shift_JISへ変換できない文字を「?」に置き換えつつShift_JISに変換して、またUTF-16に戻します。ファイル名の保…