2013-11-27 34 views
0

我在寫一個使用2.7.3版本的python腳本。在腳本行令人煩惱的Python語法錯誤

toolsDir = 'tools/' 

當我運行這個在終端上我的字符串「R」的最後一個字符得到SyntaxError: invalid syntax。我嘗試重命名字符串,使用「而不是」,如果我實際上通過bash進入python並在一行中聲明字符串並打印它,我不會出現錯誤

我通過file -i update.py和I檢查了編碼得到text/x-python; charset=us-ascii

我用的TextWrangler,nano和LeafPad的文本編輯器。

我有一種感覺,可能是一些與編輯之一的編碼。我有這個腳本沒有任何錯誤之前運行。

任何意見將不勝感激。

+0

你是如何執行腳本的? – karthikr

+0

這看起來有點像DOS行結束問題,'r'被神祕地報告爲字符串中的最後一個字符,但是我並不知道Python會關心的原因,或者一個文字回車將如何變成'\ r'表示錯誤可能是引用。 – chepner

+0

以前的行看起來像什麼? – tripleee

回答

1

錯誤當然是一個愚蠢的錯誤。

在我的一個進口中,我使用try:沒有關閉或捕獲錯誤情況。 pylint沒有抓住這個,錯誤信息並沒有表明這一點。

如果將來有人有這個三重檢查語法錯誤的所有開放代碼。

1

字符串是'tools/'toolsDir是一個變量。當然,你可以自由地使用不同的術語,但最終會讓試圖幫助你的人感到困惑。該行中唯一的r是變量名的最後一個字符,所以我假設這是錯誤的位置。

很可能你已經設法引入了一個固定寬度的空間(字符代碼0xA0)而不是普通的空間。嘗試刪除SP=SP(全部三個字符)並重新輸入它們。

+0

我已將字符串toolsDirectory重命名並將整行退格並重寫它並得到相同的錯誤。如果我發佈了hexdump -C輸出的相關行,你能幫我看看嗎? – KDEx

1

嘗試通過pylint運行代碼。

您可能在此之前的附近一行有語法錯誤。嘗試評論這條線,看看錯誤是否會移動。

你可能會有一個空白錯誤,不要忘記python中的空白數。如果您在文件中的任何位置混合了製表符和空格,則可以將語法檢查器關閉幾行。

如果您從任何其他來源複製並粘貼了此行,則可能複製了與您使用的任何慣例不符的空白。

+0

這是一個好主意,我沒有想到,但輸出是我在同一行上有語法錯誤。我們現在知道這個錯誤至少在其他地方沒有。 – KDEx