def importAndSave(self):
root = self.ui.treeWidget_migrateAnm.invisibleRootItem()
count = root.childCount()
for i in range(count):
item = root.child(i)
ns = item.text(1)
# For each item in list, it will be saved into each file
# Have to force create a new scene
cmds.file(f=True, new=True)
cmds.file(rename= str(ns))
# Import Rig commands
# ....
cmds.file(f=True, type='mayaAscii', save=True )def importAndSave(self):
root = self.ui.treeWidget_migrateAnm.invisibleRootItem()
count = root.childCount()
for i in range(count):
item = root.child(i)
ns = item.text(1)
# Import Rig Commands
# ....
self.tmpSave()
def tmpSave(self):
path = '/user_data/.tmp/anm_tmpFiles'
newName = name + "_0001" + ".ma"
newSaveDir = os.path.abspath(os.path.join(path))
newSavePath = os.path.join(newSaveDir, newName)
if os.path.exists(newSaveDir):
savedFiles = os.listdir(newSaveDir)
print savedFiles
savedFiles.sort()
incFiles = []
for i in savedFiles:
if fileName in i:
incFiles.append(i)
lastFile = incFiles[len(incFiles)-1]
name = lastFile.partition(".")[0]
newFileName = name[:-4]+(str(int(name[-4:])+1).zfill(4))+".ma"
incSaveFilePath = os.path.join(newSaveDir, newFileName)
system.saveAs(incSaveFilePath)# Traceback (most recent call last):
# File "/user_data/dev_test/anm/versions/anmTool_v02a.py", line 211, in test
# self.tmpSave()
# File "/user_data/dev_test/anm/versions/anmTool_v02a.py", line 232, in tmpSave
# newSavePath = os.path.join(newSaveDir, newName)
# File "/apps/Linux64/aw/maya2014/lib/python2.7/posixpath.py", line 66, in join
# if b.startswith('/'):
# AttributeError: 'QString' object has no attribute 'startswith'--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/0116e3c5-a06d-46cc-8413-a93b82026179%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
| David Moulder Technical Animator / Artist squi...@gmail.com Professional Profile | Mobile: +44 (0)7814033242 |
| See who we know in common | Want a signature like this? |
# Traceback (most recent call last):
# File "/user_data/dev_test/anmg/versions/anmgTool_v02a.py", line 211, in test
# self.tmpSave()
# File "/user_data/dev_test/anmg/versions/anmgTool_v02a.py", line 246, in tmpSave
# lastFile = incFiles[len(incFiles)-1]
# IndexError: list index out of range--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/4547438e-a1e9-46c8-941d-ab65f2db579b%40googlegroups.com.
Thats because you aren't checking your results after you list the directory contents, and then you are trying to index into an empty list:savedFiles = os.listdir(newSaveDir)
print savedFiles
savedFiles.sort()
incFiles = []
for i in savedFiles:
if fileName in i:
incFiles.append(i)
lastFile = incFiles[len(incFiles)-1]You have to handle the case where it is an empty directory.
On Wed Feb 18 2015 at 6:02:20 PM likage <dissid...@gmail.com> wrote:
Hi there,you are right. it seems to have bypass the error, never know about QString as I thought it will still work since it is still string..However I have a problem in the "lastFile" line, especially so if there isn't a file to begin with.For example, if there is already a "AvenueA_0001.ma" in the directory, it will automatically creates a "AvenueA_0002.ma" file, so on and forth. However say if I have a new file with the naming of "AvenueB", instead of creating "AvenueB_0001.ma", it will gives me the following error:# Traceback (most recent call last):--# File "/user_data/dev_test/anmg/versions/anmgTool_v02a.py", line 211, in test
# self.tmpSave()
# File "/user_data/dev_test/anmg/versions/anmgTool_v02a.py", line 246, in tmpSave
# lastFile = incFiles[len(incFiles)-1]
# IndexError: list index out of range
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsub...@googlegroups.com.
I don't really know what to suggest right now, because your earlier pasted example seemed like pseudo code, since it contained a number of inconsistencies. Really only seeing fully working code is going to allow help with debugging. Obviously there is a right way to implement file name incrementing.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/e9637a6a-56e1-4182-928a-a268f6ad75f2%40googlegroups.com.