当"file a"不打开文件时,如何停止"run script"文件中的"for loop"

By simon at 2019-05-16 • 0人收藏 • 24人看过

我正在"MAYA"中处理一个"python 脚本",当我使用"pm.fileDialog2"时,当我单击退出按钮时,循环脚本仍然在运行,我想当我打开文件并单击关闭按钮"for loop"停止。 谢谢你的帮助

这是《玛雅》中的 pyside 和 pymel 脚本

# file: run script runScript (scripts'file a.py','file b.py']) def runScript (scripts ]) : if len (scripts) : for script in scripts: exec (open (script). Read () ,globals () # File: File a Open File pm.fileDialog2(cap'Open File',ff'Maya Files (*). 妈妈。 1,fm 4) if Open File: print ('Open File') else: print ('Not Open') # File: File b print ('this is File b')
1 个回复 | 最后更新于 2019-05-16
2019-05-16   #1

我不确定我是否理解了这个用例,所以如果这不是您要寻找的,那么很抱歉。

它通常不是一个好主意使用Exec ()因为它可能会在你的全局名称空间中留下不可见的痕迹---- 在你的例子中打开文件变量会在你运行后存在,因为Exec ()将运行,如果你刚刚运行的代码行。 更常见也更安全的模式是在函数内部完成工作,然后导入这些函数来完成工作。

如果你想打开一个文件并在一个函数中处理它,通常的模式是有一个定义你想运行的函数的文件:

# in"do something.py"import maya.cmds as cmds def process (filename) : if filename: cmdlet. file (open filename) print"doing things in...",filename # real work here else: print"no file provided"return

然后导入该文件并使用该函数来完成这项工作。 这样,您就拥有了控制流,而不需要任何额外的技巧。

# 在主文件或监听器导入中导入 Maya.cmds 文件名 pm.fileDialog2(cap'Open File',ff'Maya Files (* 。 妈妈。 1,fm 4) do something. 进程(文件名)

要导入该文件,您需要将其放在 python 路径的某个位置; 基本内容如下这里

登录后方可回帖

Loading...