<aside> 💡 文字コードUTF-8に注意。間違えると正しく開けなくなったりする。
</aside>
Examples
_name = 'tyNukeScriptEditor'
_version = 'v1.0.0'
_updated = '2023/01/21'
"""
* Coding : Windows10 Python 3.7.9
* Python2.7では動かない
* Coding by : Tatsuya Yamagishi
* Created : 2023/01/21
* Author : Khaki@2023
"""
# フォルダ
ROOT = r'V:\\prism2\\03_Production\\Shots'
# 対象の文字列
SRC = 'V:/project/work_3d'
# 置き換える文字列
TRG = 'Y:/project/work'
import pathlib
from pprint import pprint
def main():
"""
メイン関数
"""
# Pathクラスに格納
root = pathlib.Path(ROOT)
# Path.globでフォルダ内の.nkファイルを再帰的に収集
nuke_script_file_list = root.glob('**/*.nk')
for nuke_script_file in nuke_script_file_list:
"""
収集したファイルのループ処理
"""
# ファイルパス表示
print(nuke_script_file.as_posix())
# テキストファイルをutf-8にエンコードしてラインで読み込む
with nuke_script_file.open(encoding='utf8') as f:
script_code = f.readlines()
# 開いたテキストファイルを処理
edited = False # 編集済フラグ
for i, line in enumerate(script_code):
if SRC in line:
"""
行に<SRC>が見つかったら置き換える
"""
edited = True
new_line = line.replace(SRC, TRG)
script_code[i] = new_line
print(f'{i}\\\\n\\\\t{line}')
print(f'\\\\t{new_line}')
#---------------------------#
# 編集してたら保存
#---------------------------#
if edited:
"""
編集した場合、ファイルを保存
"""
with nuke_script_file.open(mode='w', encoding='utf8') as f:
f.writelines(script_code)
if __name__ == '__main__':
main()