いちいち mayaのファイルを開いてrefereceされてるファイルのパスとかを確認するのがとても面倒なので、なんとかしたいんです。
とりあえずmaファイルを観察
ははーん
1行ずつ確認していけば行けそうな気もするな。
1行ずつ評価していって、
- file で始まり
- ;で終わる
行を抜き出す
その後、
スペースでsplitして、一番最後のindexがリファレンスしてるデータのパス
と、おもいましたが
ファイルパスにスペースが入ることがあると駄目かもしんない。
となると、ちょっと無理やりですが
スペース + " でsplitして、一番最後のindexがリファレンスしてるデータのパス
なら行けそうなきもします。
雑実装
def getReferenceFilePath(sceneFilePath):
allFilePath = []
with open(sceneFilePath,"r") as f:
lines = f.readlines()
tmpString = ""
for l in lines:
if l.startswith("file -r") and l.endswith(";\n"):
tmpString = l.split(" \"")[-1]
referenceFilePath = tmpString.replace("\";\n","")
if referenceFilePath not in allFilePath:
allFilePath.append(referenceFilePath)
f.close()
return allFilePath
sceneFilePath = "C:/Users/kubo/Desktop/refTest.ma"
print(getReferenceFilePath(sceneFilePath))
##['C:/Users/kubo/Desktop/tama.ma']
お、一応とれました!
なんかうまく行かない奴出現
何だ簡単じゃないですかー と思ったのもつかの間
うまく行かない奴が出現・・・
次回対応します。