小编Neo*_*ker的帖子

具有区分大小写的Python字符串模板

这是一个命名脚本,用于命名Autodesk Maya中的节点.然而,这个特定的脚本并没有使用特定的任何东西.

我刚才问过我会怎么做这样的事情,可以使用变量约定,然后出现模板.

所以如果我有这样的约定:

'${prefix}_${name}_${side}_${type}'
Run Code Online (Sandbox Code Playgroud)

我可以传递这些论点:

bind_thigh_left_joint
Run Code Online (Sandbox Code Playgroud)

然后通过缩写词典(以及用户缩写词典)运行它们,使用场景文件中的相关节点进行检查以确保没有重复项,最后得到: bn_thigh_L_jnt

但是我想要它,以便如果其中一个键具有第一个大写字母,它将使替换大写.

例如,如果{$prefix}是代替{$Prefix}大腿会成为大腿,或者如果{$prefix}{$PREFIX}大腿会成为大腿上.但是,如果它是{$PREfix}大腿仍然只是大腿.

我可以很容易地做到这一点,除了我无法检测钥匙的个别情况.例如,如果字符串是'${Prefix}_${name}_${SIDE}_${type}'我如何找到什么案例前缀,如果我知道,我将如何使用此模板?

请注意,这段代码不是我所拥有的确切代码,我已经省略了许多其他更具特色的东西,这只是处理替换本身.

from string import Template
import collections

def convert(prefix, name, side, obj_type):
    user_conv = '${Prefix}_${name}_${SIDE}_${type}'
    # Assigns keys to strings to be used by the user dictionary.
    subs = {'prefix': prefix, 'name': name, 'side': side, 'type': obj_type}

    # Converts all of user convention to lowercase, and substitutes the names from subs.
    new_name = Template(user_conv.lower())
    new_name = …
Run Code Online (Sandbox Code Playgroud)

python maya python-2.7

4
推荐指数
1
解决办法
833
查看次数

标签 统计

maya ×1

python ×1

python-2.7 ×1