2016年10月25日火曜日

Python:関数と戻り値と勝手に代入

拾い物のスクリプトを見ていたら。変な記述を見つけた。
簡単にするとこんな感じ。

test = []
def Test1(pList):
    pList.append("test")
    print pList
    return pList
Test1(test)
print test

本来ならtest = Test1(test)
とでもすればよいのか?
一見代入していないように見えてprintはちゃんと"test"と表示される。

ほほーPythonでは勝手に代入できちゃうの?
と思って以下のように動作チェック。
結果は・・・
['test']
['test']
---
['test']
---
test
んーあれー?
appendを使った時だけうまくいってる。
よくわからんわ・・・
どうして?

2016年10月21日金曜日

MotionBuilder:Python:IncrementSave

MayaのIncrement Save機能がうらやましいので、作った。



15:import shutil
フォルダのコピーはosコマンドでは無いらしいのでこれを導入

16:import datetime
日時情報を入手するのに使う

18:lFileName = FBApplication().FBXFileName
現在のfbxファイルのパスを取得

23:if not os.path.isdir(path+"\\old"):
既にoldフォルダが存在するか確認

31:for obj in os.listdir(path):
フォルダのリストアップ

51:shutil.copy(fromPath+"\\"+fileName, toPath+"\\"+newFileName)
フォルダのコピーはosコマンドではない

56:FBMessageBox( "Error", "Already exist\n"+errorPath+"\n\nCheck backup folder\nor backup by hand\n\nThere is NOT also normal SAVE", "OK" )
英語に自信なし

63:fileTime = fileTime.strftime("%Y-%m%d-%H%M-%S")
時間の取り出し
表記が簡単で便利

以下参考にしたサイト
pythonでファイルのコピー・移動 - 心魅
Saving to a File - docs.autodesk.com
共通のパス名操作 - docs.python.jp
pythonでフォルダ内のファイル一覧をパス無しで取得する - Qiita
ファイルのタイムスタンプ取得 - Python Snippets
基本的な日付型および時間型 - docs.python.jp