Pythonに興味を持ってから、いろいろ本を見たりネットを調べたりしてたんだけど、iOSのアプリPythonista 3が凄いらしい。
「Pythonista 3」をApp Storeで
iOS上で動作する革命的ものづくり環境「Pythonista 3」の魅力をとくと語る
Pythonista 3にシェル、Dropbox同期・ダウンロード機能などAppleが許さない機能を追加する
Pythonistaを使ってみて ( ソフトウェア ) - tsukada816のブログ - Yahoo!ブログ
こいつは面白そうだけど、1200円かぁ。
と思ってしばらく保留。
そろそろ Pythonista 3 を買おうかなぁ
— a.sue@葛飾区 (@a_sue) 2017年2月8日
omz:software「Pythonista 3」買っちゃった https://t.co/iqoFQSbcFX
— a.sue@葛飾区 (@a_sue) 2017年2月11日
ってことで、買ったのが先週。
前記のサイトを参考にStaShを入れたり、DropboxSyncを入れたり。
その後でptinstallerを入れたら、DropboxSyncが2種類になってしまった。
ptinstallerから入れたDropboxSyncはなぜかアップロードしかしてくれないみたい。
で、Pythonista 3にシェル、Dropbox同期・ダウンロード機能などAppleが許さない機能を追加するで入れたDropboxSyncv2はガンガンダウンロードしてくれるけど、.DS_Storeファイルでエラーになる。
.DS_Storeって何?とググったら、Mac関係のファイルなのね。
で、対策をググるとヒットしたのがここ
なるほど、そうすればいいのか。
ってことで、このファイルを書いて
DropboxIgnore.py
IGNORED_FILES = ['desktop.ini', 'thumbs.db', '.ds_store', 'icon\r', '.dropbox', '.dropbox.attr', '.dropbox_state_v2'] def is_ignored(filename): filename_lower = filename.lower() for ignored_file in IGNORED_FILES: if ignored_file in filename_lower: return True return False
DropboxSyncv2.pyにis_ignored(path)でスキップする処理を追加。
(前略) import DropboxIgnore as di (中略) def download(self, client, path): if di.is_ignored(path): return print('\tDownloading:', path) (中略) def upload(self, client, path): if di.is_ignored(path): return print('\tUploading:', path) (後略)
想定外だったのは、ptinstallerのDropboxSyncと交互に試したりしたので、iPad Air上で修正したコードが、先にDropboxからダウンロードされたファイルで上書きされて失われたり、それを避けようとしてWindows上のPyCharmで書いたコードのIGNORED_FILESがタイプミスで意味なかったり、つまらないミスが続いて何度やってもダメだったこと。
冷静になって一つ一つ潰していったら、DropboxSyncv2.pyでダウンロードとアップロードがちゃんと最後まですすみ、iPad AirとiPod touchからやっても問題なく同期できるところまで行った。
ただし、同期中にPokemon GOをやりまくってたりすると途中でエラーが発生して止まったりするけど。
とりあえず、これで環境が整った。
これでどこでも言語処理100本ノック 2015が出来るぞ。