pythonのメモ
pythonを使った時のテストコード。
2019/03/31
オフラインでjupyter使わずにpandasのdataframeをcufflinksでplotly
2018/05/11
mp3のファイル名にトラック番号を割り当てる(ID3)
未だにCDからmp3に変換した音楽で聴いてます。
名前順にして聴いてるので、ID3タグにあるトラック番号をファイル名の先頭に貼り付けてます。
コードでは、renameフォルダ内に入れたmp3に順次トラック番号「 番号_ 」を付加(リネーム)していってます。
python 3.6 64bit
Windows 10 64bit
2018/8/22 コード修正
2017/10/23
文字列を辞書型に変換
dictでキャストしようとすると「dictionary update sequence element #0 has length 1; 1 is required」と出る。
astモジュールを使用で解決した。
Windows 10 64bit
2017/10/21
minecraftをpythonで動かす
今更ながら最近になりマインクラフトにハマってしまった。世界がブロックに感じるようになってしまうという中毒症状がでてる今日このごろ、minecraft をpythonで動かすことができるということで、色々調べました。
丁度この時期、クロスプラットフォームになったようで、マイクラ初心者にとっては、何がなんだか。 サーバーも立てれることができたり、MODやらSpigotやらいっぱい出てきて、混乱してましたが最近ようやくなんとなくわかってきた。
なので自分なりの整理
現在(2017/10/21)は、「マインクラフト(iOS版、Android版、Windows 10版、Gear VR版、Kindle Fire版、Fire TV版、Apple TV版)、いわるゆ bedrock Edition?」と「マインクラフト Java Edition」、それからソニー系のプレステにある「マインクラフト」の3種類ぽい。 知人がやってて、自分もハマったのはプレステ版
pythonを使うことができるのは、マインクラフト Java Edition、あとpythonの使い方次第*1ではPC上で使うマインクラフトBedrockEdition。 マインクラフト Java Editionを買うと、マインクラフト BedrockEditionのwindows10版が無料で手に入るので、PCで使う場合は、JavaEditionを買っとくとお得。
マインクラフト Java Editionは、ノーマルなバージョンとMODという拡張機能を使えるバージョンがある。これは、いろんな人達が作ったMODを使うことで、様々な機能を組み込むことができる。MODを導入するにはMinecraftForgeが必要。 自分でサーバーを立てたい場合は、ノーマルなバージョンは公式サイトからサーバー用をダウンロードする。 自分のサーバーにMODなどの機能をつけるには、Bukkit、あるいは派生版のSpigotを使用する。
pythonを使用できるのは、もともとラズベリーパイ用だったようで、それを利用するみたい。 mcpipyとRaspberryJamModを使うことで、MinecraftForgeを導入したJavaEdtionでも使えるようになる。 自サーバー用(Spigot)では、pluginsにraspberryjuiceを入れ、mcpipyも使うことで機能するようになる。 op権限を自キャラに渡し、コードを実行すると動作する。
上記がわかった上で、導入方法をググればスムーズかなと思います。
Minecraft Building Plannerというソフトがあり、これで設計ができる。一層ごとのブロック位置をPDF形式でも出力されるし、ビューワで実際の感じもわかる優れもの。 ファイルフォーマットもxmlのため、pythonを介せばマインクラフト上にビルドすることが可能。 ただ、本来の自分でコツコツ作る楽しみはだいぶ薄れる。。。サーバー運営するときには、予め作っておくことができるので便利ですね。他にもっと運営者用に良い方法があるのかもしれませんが。。。。
今回のコードはminecraft Java Edition, Spigot, raspberryjuiceで動作確認しました。
minecraft 1.12.2 Java Edition, Spigot, raspberryjuice
Windows 10 64bit
Bedrock Editionの場合
*1 pythonのキー入力を自動化するモジュールをインポートして、chatのコマンドを1行づつ自動入力するという、だいぶ気長なプログラムで対応。(そういう方法しか思い浮かばなかった。)
追記10/26
Education版ではなくBedrock EditionにMakeCodeが対応したみたいです。 Microsoft、「MakeCode for Minecraft」を発表 ~マイクラで遊びながら楽しく学習
これでJava scriptでコードできるので便利ですね。(ここのブログはpythonのメモなので割愛します。)
LINK
Minecraft Building Planner
参考書
python-docxで日本語のフォントを指定
python 2.7 32bit
python-docx 0.86
日本語のフォント指定
通常のフォント指定では半角英数だけに適用されているので、
doc = docx.Document(filename)
font = doc.styles['Normal'].font
font.name = u'HGP創英角ポップ体'
下記のようにするとうまくいくとのこと。
import docx
from docx.oxml.ns import qn
doc = docx.Document(filename)
r = doc.styles['Normal']._element
r.rPr.rFonts.set(qn('w:eastAsia'), u'HGP創英角ポップ体')
LINK
feature: Font.name_far_east #154
2017/05/24
Thermal printer (serial port)
選択したの機器は、アマゾンで、安くてUSB接続のほかにCOM接続、Bluetoothでも接続できる製品(POS-5805DD)を選んだ。
機器の接続から印刷までの流れとしてはプリンタをBluetoothで接続して、pythonからシリアル通信で印刷する。
参考にしたサイトはLINK参照。
まず、プリンタとPCとの接続方法(POS-5805DDの場合)
1.バッテリの絶縁シールを取り除き、充電。
2.電源を入れ、PCでBluetooth機器を検索
3.2つ候補がでるので、アイコンの絵がBluetooth Printerになっているほうを選択
4.パスコード(説明書に書いてある)を入力
5.BluetoothのプロパティにあるSPP slaveにチェックを入れる。
もちろん普通に、付属のCDからドライバをインストールし、USBプリンタやBluetoothプリンタとして使える、と思う(試していない)。
pyserial
Windows 10 64bit
LINK
https://ask.warrior.pk/post/13757/2017-04-14
https://github.com/luopio/py-thermal-printer/blob/master/printer.py
2016/04/17
graphviz and Synthetic Biology Open Language (SBOL)
graphviz
Windows 8.1 64bit
Link
-Caret Dash Caret
Graphviz + SBOLv1.0
SBOL
python graphviz