2013-06-11 135 views
0

python新增功能。剛剛開始了一個正在開始進入腳本編程的操作類。我發現了python的練習,我遇到了一個錯誤。瑪雅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

Maya不會打印錯誤的堆棧跟蹤,因此我建議您將該文件的操作封裝在[try/except塊]中(http://docs.python.org/2/tutorial/errors.html#處理的例外)。無論如何,當您嘗試打開文件時,看起來會發生錯誤,請確保它位於正確的位置,並且名稱沒有拼寫錯誤。 –

+0

'\ t'是一個製表符。 –

回答

3

最有可能的問題是,你在你的文件名中使用反斜槓,所以他們可以得到解釋爲控制字符。 IO錯誤是因爲文件名被損壞。

嘗試

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一般的maya慣例,所以這是正確的事情。 – 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