【Python】指定フォルダ内のファイルの一括連番リネームする
概要
Pythonの勉強を始めたため備忘録として記事を作成
「指定フォルダ内のファイルの一括連番リネーム」するものを作成したため過程で学んだことなどを記載
成果物
いろいろ覚えたことの備忘録
実行ファイルのパスを取得
print(__file__) # 結果 h:\HOGE\HOGE\HOGEHOGE\test.py
実行ファイルのディレクトリのパスを取得
print(os.path.dirname(__file__)) # 結果 h:\HOGE\HOGE\HOGEHOGE
文字列のフォーマット
a = 10 b = 99 str1 = "number={} and {}".format(a, b) str2 = f"number={a} and {b}" # 結果 number=10 and 99
文字列にパターンとマッチする部分があるかを調べる
# ファイル名で使用できない文字が含まれていないか調べる fileName = "aa?aaa" if re.search(r'[\\|/|:|?|.|"|<|>|\|]', fileName): print("NG") # 結果 NG
フォルダ内のファイルから「ファイル」のみを取得(フォルダを除く処理)の内包表記
files = os.listdir(dirPath) # フォルダ内の全ファイル取得 files = [f for f in files if os.path.isfile(os.path.join(dirPath, f))] # フォルダ内の全ファイル取得
取得したファイルの「作成日」順でソート(昇順)
# ファイル名で使用できない文字が含まれていないか調べる files = os.listdir(dirPath) # フォルダ内の全ファイル取得 files = [f for f in files if os.path.isfile(os.path.join(dirPath, f))] # フォルダ内の全ファイル取得 # ソート(reverse=Trueで降順) files = sorted(files, key=lambda f: os.stat(os.path.join(dirPath, f)).st_ctime, reverse=False)
取得したファイルの「ファイル名」(文字列)順でソート(昇順)
files = os.listdir(dirPath) # フォルダ内の全ファイル取得 files = [f for f in files if os.path.isfile(os.path.join(dirPath, f))] # フォルダ内の全ファイル取得 # ソート(reverse=Trueで降順) files = sorted(files, key=lambda f: f, reverse=False)
for文でインデックスと要素を同時取得
files = os.listdir(dirPath) # フォルダ内の全ファイル取得 files = [f for f in files if os.path.isfile(os.path.join(dirPath, f))] # フォルダ内の全ファイル取得 # for文 for index, file in enumerate(files): print(f"{index} : {file}")
配列の最後の要素を取得
a = [1,2,3,4,5] print(a[-1]) # 結果 5
コマンドプロンプトから呼ばれた際の引数を取得する
# 呼び出し側 python test.py a 111 ZZZ # python側 args = sys.argv print(args[0]) print(args[1]) print(args[2]) print(args[3]) print(len(args)) # 結果 test.py a 111 ZZZ 4
YAMLファイルの読み込み、要素の取得
with open(INFO_YAML_FILE_PATH) as yamlFile: # YAMLファイルを開く yamlText = yaml.safe_load(yamlFile) # YAMLファイルのロード dirPath = yamlText[YAML_KEY_DIR_PATH] # Keyでアクセス
最後に
学習し始めはなんでも面白いもので止まらない。
Unityの学習を怠ってしまっている・・・。(ヤバイ)
まだ初学者ゆえ間違っていることやこうした方がいいと思うことがあったら優しくコメントください。<(_ _)>
【Unity】バッテリーの残量と状態の確認
やりたいこと
端末のバッテリーの残量と状態を確認したい
Gist
【C#】Enumを使用したビットフラグとHasFlagの速度について
やりたいこと
HasFlagの速度を比較して調べてみる。
(いろいろなところで遅い遅い言われているので)
※100見は1触にしかず(勇次郎)
(記事で見て納得するより自分でやってみて納得するというニュアンスで書いた)
環境
Unity2020.3.11f
ソースコード(Gist)
結果
やはりHasFlagは自作した方がよさそう
参考サイト(Gistにも記載済み)
C#のenumでビット演算をする - Qiita
[C#] EnumのFlagsを安心して使う方法 - ざこノート
[余談] 暗黙的な派生 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
間違えている箇所などありましたら優しく教えてください。<(_ _)>
1人SlackのRSSで通知されたメッセージを「後で読むチャンネル」に保存する
基本的に情報収集は1人SlackでRSSを入れて行ってるが、サイトによってはあまり関心のない情報も通知として来てしまい流れてしまい後で読みたかったところまでさかのぼるのが面倒・・・。
また、各ジャンルの情報をピックアップして1つのチャンネルにまとめたい的なことをしたかった。
やりたいこと
RSSでいろんなチャンネルに流れてくるメッセージで後で読みたかったり読み返したいメッセージ(記事)を別のチャンネルにまとめる
1人Slackの目的
主に情報収集(これに尽きる)
Slackの無料版を使用してRSSなどのアプリを入れて情報収集をしている
下記それぞれ別のチャンネル
・娯楽系のサイト(意味が分かると怖い話など(好きだから))
・技術系のサイト(その筋では有名な方などのブログなど)
・ゲーム情報関連のサイト(4Gamer, Social Game Infoなど)
・ガジェット関連(ギズモード・ジャパンなど)
・ライフハック系(ライフハッカーなど)
RSSについて
下記を参考にしてください(割愛します)
Slack に RSS フィードを追加する | Slack
記事をピックアップして「後で読むチャンネル」にコピーする
追加するAppは以下
reacji-channeler.builtbyslack.com
基本的に流れは「後で読みたいな」と思ったメッセージ(記事)に特定のリアクションをすると設定されたチャンネルにそのメッセージのコピーが通知される感じ
手順
・Reacji ChannelerをSlackに追加
・「後で読む」チャンネルを作成(※チャンネル名はお好きに)
・作成したチャンネル名に移動しメッセージ部分で下記を入力して送信(わざわざチャンネルまで行かなくてもいいかもしれない)
/reacji-channeler :eyes: #ch_my_pick_up
意味としては、「:eyes:(両目アイコンの絵文字)」のリアクションをしたメッセージを「#ch_my_pick_up(あとで読むチャンネル)」にコピーするって感じ。
これを応用すれば、あとで読むチャンネルだけでなく、大事な記事チャンネルなどいろいろな用途で使えそう。
また、専用の顔文字を追加して使用した方よさそう。(ほかの用途で安易にその顔文字を使用できないようにするため(そのメッセージがコピーされちゃう!))
これと似た用途で別の方法は下記にある(こっちの方が凝っている感じ)
個人 Slack のススメ - Qiita
情報収集と保存とSlackで共有を自動化する - hatajoeのブログ
正直自分はそこまで凝ったことは目的ではなく単純に気になった記事にリアクションして後で読むチャンネルに保存して後で読む的なことができればいいので今回のような感じにした。
他に今回のような用途でおすすめの方法などありましたら教えてくださいませ。m(__)m
UnityのビルドをJenkinsで自動化するまで Part1
UnityのビルドをJenkinsで自動化するために行ったことの備忘録
小出しでいきます。
やりたいこと
・WindowsでUnity開発をしてビルド)(enkinsまわり)は別途ビルドマシンで行いたい。
・開発PCからJenkinsにアクセスしてジョブを開始させたい
・開発PC上でビルドマシンの操作をしたい
Mac(ビルドマシン)側の準備
Homebrew をインストール
下記によりインストールした
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
確認
ターミナルで下記を打ち、Your system is ready to brew.と表示されればOK
$ brew doctor
Command Line Tools (CLT) for Xcode をインストール
※上記の「brew doctor」でコマンドラインツールがどうとか警告が出たので下記でインストール
$ xcode-select --install
再度「brew doctor」を試したら「Your system is ready to brew.」が表示された。
Jenkins をインストール
ターミナルで下記でインストールした
$ brew install jenkins
下記のような感じの表示になったらOK
==> Summary 🍺 /usr/local/Cellar/jenkins/2.189: 7 files, 78MB, built in 1 minute 46 seconds
参考サイト
こっち見た方が早い・・・。と自分でも思ってしまう・・・
Jenkins を Mac にインストールして LAN内の PC から接続するまで - Qiita
次
[記事が用意されたらリンク]