三日月館【別館】開発・制作Tips集
[NUKE] Pythonでファイルパス中の連番記号(#)を数値に置き換える
最終更新:
fumiduki1985
-
view
下記の2つの方法で可能。
- nukescriptsモジュールのreplaceHashes()関数を使用する。
- nukeモジュールのfilename()関数を使用する。
nukescripts.replaceHashes()関数の場合、連番記号(#)やprintfの変換指定子風(%d、%03d等)の形式のどちらを渡しても、任意の数値に置き換えることができる。
nuke.filename()関数の場合、任意の数値には置き換えられず、アクティブなビューのカレントフレームに置き換えるのみ。
nuke.filename()関数の場合、任意の数値には置き換えられず、アクティブなビューのカレントフレームに置き換えるのみ。
使い方はそれぞれ異なるため注意。
記述例:
import nuke import nukescripts # 下記いずれもreadNodeには有効なReadノードオブジェクトが格納されている前提 # nuke.filename()の場合 # 連番記号の部分をアクティブビューのカレントフレームに置き換えて返す # なお、第2引数のnuke.REPLACEを指定しない場合、連番数値の部分は#のまま返される。 replacedPath = nuke.filename(readNode, nuke.REPLACE) # nukescripts.replaceHashes()の場合 path = readNode['file'].getValue() # 連番静止画の場合、連番数値の箇所は%dなどとなって返される replacedPath = nukescripts.replaceHashes(path) % 5 # 「5」に置き換える