三日月館【別館】開発・制作Tips集

[NUKE] Pythonでファイルパス中の連番記号(#)を数値に置き換える

最終更新:

fumiduki1985

- view
管理者のみ編集可
下記の2つの方法で可能。
  • nukescriptsモジュールのreplaceHashes()関数を使用する。
  • nukeモジュールのfilename()関数を使用する。

nukescripts.replaceHashes()関数の場合、連番記号(#)やprintfの変換指定子風(%d、%03d等)の形式のどちらを渡しても、任意の数値に置き換えることができる。
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」に置き換える



このページのタグ一覧
NUKE Python プログラミング

記事メニュー
ウィキ募集バナー