コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Python】指定した .mp3 の音量を ffmpeg で正規化する

ソースコード import os from pathlib import Path def normalize_audio_folder(folder_path): # フォルダ内のすべてのファイルとサブフォルダを再帰的に取得します for root, _, files in os.walk(folder_path): for file in files: if file.endswith(".mp3…

【Python】for を並列化する方法

概要 import glob import librosa import soundfile import shutil import sys import os # コマンドライン引数で指定されたディレクトリに存在するすべての .ogg のファイルパスを取得 files = glob.glob(sys.argv[1] + "/*.ogg") for file in files: # .og…

【Python】Failed to determine matplotlib's data directory!

概要 Failed to determine matplotlib's data directory! pyinstaller 実行時に上記のエラーが発生する現象に遭遇した pip uninstall pathlib 上記のコマンドで pathlib をアンインストールしたらエラーが発生しなくなった 参考サイト様

【Python】ffmpeg で No such file or directory

概要 ffmpeg -y -i "${waveFile}" -vn -ac 2 -ar 44100 -ab 128k -acodec libvorbis -f ogg "${oggFile}" ffmpeg で .wav を .ogg に変換しようとしたら No such file or directory 上記のエラーが発生する現象に遭遇した ファイルは正常に存在する状態だっ…

【Python】soundfile.write で Format not recognised.

概要 y, sr = librosa.load(file, sr=None, mono=False) soundfile.write(file=file, data=y, samplerate=sr) mono=False で読み込んだ音声ファイルを soundfile.write で保存しようとしたら Format not recognised. 上記のエラーが発生して 0 バイトのファ…

【Python】.ogg の最初と最後の無音部分を削除する方法

概要 import librosa import soundfile as sf path = "input.ogg" y, sr = librosa.load(path, sr=None, mono=False) yt, index = librosa.effects.trim(y, top_db=60) sf.write("output.ogg", yt.T, sr) pip install librosa で librosa を入手しておく pip…

【Python】指定したフォルダ内のすべての .png のモードを RGB からインデックスに変更して背景色はピンクにするサンプル

ソースコード import glob from PIL import Image directory_path = "【フォルダのパス】/**/*.png" files = glob.glob(directory_path, recursive=True) for path in files: image = Image.open(path) image = image.convert("P") palette = image.getpalet…

【Python】指定したフォルダ内のすべての .png のモードを RGB からインデックスに変更するサンプル

ソースコード import glob from PIL import Image directory_path = "【フォルダのパス】/**/*.png" files = glob.glob(directory_path, recursive=True) for path in files: image = Image.open(path) image = image.convert("P") image.save(path)

【Python】PNG のモードを RGB からインデックスに変更するサンプル

ソースコード from PIL import Image path = "【.png のファイルパス】" image = Image.open(path) print(image.mode) image = image.convert("P") print(image.mode) image.save(path)

【Python】docopt 使用例

ソースコード """ Usage: hoge.py -h hoge.py (--input-path <input-path>) (--output-path <output-path>) (--column <column>) (--start-x <start-x>) (--start-y <start-y>) (--offset-x <offset-x>) (--offset-y <offset-y>) (--height <height>) Options: -h --help Show this screen. --input-path <input-path> Input imag…</input-path></height></offset-y></offset-x></start-y></start-x></column></output-path></input-path>

【Python】python-pptx で画像ファイルの名前を取得する方法

概要 from pptx import Presentation from pptx.enum.shapes import MSO_SHAPE_TYPE if __name__ == '__main__': ppt = Presentation("【.pptx のファイルパス】") for slide in ppt.slides: for shape in slide.shapes: if shape.shape_type == MSO_SHAPE_T…

【Unity】Python で .asset や .prefab、.unity などのファイルを編集する方法

はじめに この記事は「Unity #3 Advent Calendar 2019」の 12/9 の記事です 「Unity YAML Parser」を Python で使用することで Unity の .asset や .prefab、.unity などのファイルを編集できます 目次 はじめに 目次 検証環境 インストール方法 ProjectSett…

【Unity】Unity を使用せずに .unitypackage を展開する方法

はじめに 「Unity Package Extractor」を使用することで Unity を使用せずに .unitypackage を展開することができます 使用方法1 https://github.com/Cobertos/unitypackage_extractor/releases 上記のページから「unitypackage_extractor_XX.zip」をダウン…

【Python】dir を使用してすべてのメンバの名前を取得する方法

ソースコード for member in dir(【オブジェクト】): print(member) 関連記事

【Python】inspect を使用してすべてのメソッドの名前を取得する方法

ソースコード import inspect ... for method in inspect.getmembers(【オブジェクト】, inspect.ismethod): print(method[0]) 関連記事

【Python】xlrd を使用して Excel ファイルを読み込むサンプルコード

概要 例えば「example.xlsx」というファイル名の上記のような Excel ファイルを読み込む場合 import xlrd # Excel ファイルを読み込む wb = xlrd.open_workbook("example.xlsx") # シートの名前をすべて取得 print(wb.sheet_names()) # ['Sheet1'] # すべて…

【Python】Slack に Incoming Webhooks でメッセージを送るサンプルコード

概要 import requests import json class Payload: def to_json(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) payload = Payload() payload.channel = "【チャンネル名】" payload.username = "【ユーザー名】"…

【Python】クラスのインスタンスを JSON に変換するサンプルコード

概要 import json class Character: def toJSON(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) character = Character() character.id = 25 character.name = "ピカチュウ" print(character.toJSON()) 参考サイ…

【Python】UnicodeDecodeError: 'cp932' codec can't decode byte XXXX in position YYYY: illegal multibyte sequence

概要 import csv with open('example.csv', 'r') as f: reader = csv.reader(f) next(reader) # ヘッダ行をスキップ for row in reader: print(row) # 行全体を表示 print(row[0]) # 先頭の列を表示 CSV ファイルを読み込もうとしたところ UnicodeDecodeErro…

【Python】CSV を読み込んでみるサンプルコード

はじめに import csv with open('example.csv', 'r', encoding='utf-8_sig') as f: reader = csv.reader(f) next(reader) # ヘッダ行をスキップ for row in reader: print(row) # 行全体を表示 print(row[0]) # 先頭の列を表示

【Python】休日かどうか、祝日かどうかを判定できるライブラリ「JapanHoliday」紹介

はじめに 「JapanHoliday」は休日かどうか、祝日かどうかを判定できるライブラリです 使用例 from japan_holiday import JapanHoliday holiday = JapanHoliday() # 平日なので False print(holiday.is_holiday('2018-11-22')) # 祝日なので True print(holid…

【Python】日本の祝日を取得できるライブラリ「JPHoliday」紹介

はじめに 「JPHoliday」は日本の祝日を取得できるライブラリです 使用例 import jpholiday import datetime date = datetime.date(2018, 11, 24) # 祝日の名前を取得 print(jpholiday.is_holiday_name(date)) # 祝日の場合 true print(jpholiday.is_holiday(…

【Python】ModuleNotFoundError: No module named 'XXXX'

概要 ModuleNotFoundError: No module named 'XXXX' pip でインストールしたライブラリをインポートして使おうとしたところ 上記のエラーが表示されて使用できない状況に遭遇しました PyCharm で新規プロジェクトを作成する時に 「Inherit global site-packa…