一半君的总结纸

听话只听一半君

python 多行字符串怎么写才能不破坏缩进

有时候需要在python script里拼出个.mel文件,然后让mayabatch去执行

如果多行字符串的定义在function里面,嵌套很深,又希望左侧没空格,那默认情况下会是这样

def fuckme(fuck=True):
    ...
    if fuck:
        fixCmd = '''\n
if ($doFix){
    print "Calling fuckme.bakeInChar() becauase xxx is in scene\\n";
    python("fuckme.bakeInChar()");
            file -f -save -defaultExtensions 0 -type "mayaAscii";
}
             '''
                  
    ...
    # write the fixCmd strip to a .mel file

只有多行字符串都顶到左边去,写出去的mel文件左边才不会是空格,但是这样写python里的缩进不好看,所以可以如下操作

import textwrap

def fuckme(fuck=True):
    ...
    if fuck:
        fixCmd = '''\n
                    if ($doFix){
                        print "Calling fuckme.bakeInChar() becauase xxx is in scene\\n";
                        python("fuckme.bakeInChar()");
                            file -f -save -defaultExtensions 0 -type "mayaAscii";
                    }
                 '''
                 
        fixCmd = textwrap.dedent(fixCmd)
                  
    ...
    # write the fixCmd strip to a .mel file

这样的话,textwrap module把左侧的空格帮你去掉,python里缩进符合规范,mel里左侧也没有空格

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: