IOError:[Errno 22] PyMel / Python

时间:2015-05-06 18:09:27

标签: python-2.7 maya xlrd xlwt pymel

晚上好SE,

在过去的二十四小时里,我有一个一直困扰着我的问题。我已经读过这个问题了,我的问题似乎很简单。所以,我一定是做错了。

第一 我使用xlrd,xlwt和xlutils创建一个excel doc并重新打开它来检查,更新和写入(保存)它。有些事情导致它无法正常工作,显然只有当它用更新的(复制)工作簿保存OVER时才会有效。

我从这里获得了很多信息"问",但它并不适用于我...... IOError: [Errno 22] invalid mode ('wb') or filename:

SECOND 我的问题是我将此作为我的错误:

IOError: [Errno 22] invalid mode ('w+b') or filename: u'D:/LocalData/[username]/Desktop/test1_.xls'

注意,用户名实际上不是[用户名]。

此处列出了回溯:

# Error: 22
# Traceback (most recent call last):
#   File "<maya console>", line 3, in <module>
#   File "D:/LocalData/[username]/Documents/maya/scripts\ExportExcel.py", line 144, in main
#     writeExcel()
#   File "D:/LocalData/[username]/Documents/maya/scripts\ExportExcel.py", line 107, in writeExcel
#     writeInt(wb,wsInt,filePath,detectName,fileName)
#   File "D:/LocalData/[username]/Documents/maya/scripts\ExportExcel.py", line 48, in writeInt
#     logTheMatList(wb,wsInt,filePath,detectName)
#   File "D:/LocalData/[username]/Documents/maya/scripts\ExportExcel.py", line 35, in logTheMatList
#     wb.save(filePath+'MaterialList_'+str(detectName)+'.xls')
#   File "D:\Program Files\Autodesk\Maya2013\Python\lib\xlwt\Workbook.py", line 696, in save
#     doc.save(filename_or_stream, self.get_biff_data())
#   File "D:\Program Files\Autodesk\Maya2013\Python\lib\xlwt\CompoundDoc.py", line 262, in save
#     f = open(file_name_or_filelike_obj, 'w+b')

EDIT1:

想通了我无法打开并覆盖它的文件。我不确定原因,但如果它的名称和文件位置相同,则会高度反对并提供错误。有没有人对如何避免这个明显的问题有任何建议?

1 个答案:

答案 0 :(得分:0)

自己想出来。

如果你打开一个excel doc来读取并保存,同时使用os,xlrd,xlwt和xlutils ...你必须遵循这些说明(这可能是由知道少于我的人解决的;))

  1. import所有重要的必要模块
  2. rb=xlrd.open_workbook([your location here]+[your file name]+'.xls') 警告不要使用 on_demand = True ,这会使您的文件打开
  3. os.remove([your location here]+[your file name]+'.xls')
  4. wb=copy(rb)
  5. wb.save([your location here]+[your file name]+'.xls')
  6. 这是更新您创建的文件(如程序中的典型保存)而不“删除”您的文件的最有效方法,您将会保存更新的副本。