From: Malcolm E D. <mal...@bm...> - 2008-12-19 23:01:37
|
In a Python script I am working on I would like to get a list of the scenes that are defined. Unfortunately, cmd.scene('*') just prints the list to stdout, but doesn't return anything. That is, if I have a script test.py that looks like > from pymol import cmd > x = cmd.scene('*') > print x And I type "run test.py" in PyMol I get the following output > PyMOL>run test.py > scene: stored scenes: > F1 F2 > x='None' Is there a different mechanism to get a list of defined scenes? Or an argument, I've missed? I have the following work around > from pymol import cmd > import sys > from StringIO import StringIO > > tmp = StringIO() > (tmp,sys.stdout) = (sys.stdout,tmp) > cmd.scene('*') > (tmp,sys.stdout) = (sys.stdout,tmp) > list = tmp.getvalue().split("\n")[1].split() > print list which generates what I want > PyMOL>run test.py > ['F1', 'F2'] but that seems less than elegant. Malcolm |