2013-06-11 2 views
0

новый для python. Просто начался класс оснастки, который начинает проникать в скрипты. Я нашел практику для python, и у меня возникли проблемы с ошибкой.Ошибка Maya Python

import maya.cmds as cmds 
stockPath = "C:\Users\Dryan\Desktop\table.csv" 
f = open(stockPath) 
data = f.read() 
f.close() 
print data 

Это ошибка, которую я получаю.

> # Error: line 1: IOError: file <maya console> line 4: 22 # 

Опять же, это просто практика получения файла числа для печати в редакторе сценариев. Спасибо за любую помощь.

+0

Поскольку вы не используете cmds в своей программе, просто удалите первую строку. –

+0

Майя не печатает трассировку стека ошибки, поэтому я рекомендую вам обернуть операции с файлом в [try/except block] (http://docs.python.org/2/tutorial/errors.html# обработка-исключения). В любом случае, похоже, что ошибка возникает, когда вы пытаетесь открыть файл, убедитесь, что он находится в правильном месте, и имя не написано неправильно. –

+0

'\ t' - символ табуляции. –

ответ

3

Самая страшная проблема заключается в том, что вы используете обратную косую черту в имени вашего файла, поэтому они интерпретируются как управляющие символы. Ошибка ввода-вывода связана с тем, что имя файла искажено.

попробовать

или

stockPath = "C:/Users/Dryan/Desktop/table.csv" # it's more python-y to always use right slashes. 
+1

или ** stockPath = r "C: \ Users \ Dryan \ Desktop \ table.csv" **, где r означает необработанную строку, которая не исчезает. В любом случае это также соглашение майи использовать/вместо \ python вообще, так что это правильно. – joojaa

0

Как сказал joojaa, старается избегать использования обратных косых черт, когда вы можете. Я пытаюсь всегда преобразовать любой входящий путь в версию с прямой косой чертой, и перед ее выходом я нормализую его с помощью os.path.normpath.

clean_path = any_path_i_have_to_deal_with.replace("\\", "/") 
# do stuff with it 
# (concat, XML save, assign to a node attribute...) 
print os.path.normpath(clean_path) # back to the OS version 
+0

Это не поможет. –

+0

Да, потому что \ t - вкладка в созданном литерале OP. Но в противном случае да. – theodox