Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Imported NumPy 1.7.1, SciPy 0.12.0, Matplotlib 1.3.0 + guidata 1.6.1, guiqwt 2.3.1
Type "scientific" for more details.
>>> runfile('C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan/MM.py', wdir=r'C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan')
File "<stdin>", line 1
runfile('C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan/MM.py', wdir=r'C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan')
^
SyntaxError: invalid syntax
>>>
运行Windows 7 x64 /,WinPython 275,Spyder 2.7。这是使用spyder GUI运行的。当python文件夹中的(MM.py
)副本运行时,它可以工作。 BTW这是点击我没有输入任何东西。
答案 0 :(得分:3)
使用"
代替'
:
runfile("C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan/MM.py", wdir=r"C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan")
Stack Overflow足以突出显示您的无效语法。
如果某个工具(spyder GUI)执行此无效代码,请使用更好的工具。
答案 1 :(得分:1)
要真正解释问题:可以在双引号"
和单引号'
中引用字符串。只要字符串以相同的符号开头和结尾,您使用这两个中的哪一个就没有区别。因此"Hello"
与'Hello'
的字符串相同。
一旦引号字符第二次出现,字符串就会结束。所以在你的情况下,'Sid Meier's Pirates'
,字符串已经在Meier
之后结束,使得其余部分不是字符串,而是解释器试图解释的普通Python代码(通常会失败)。
因此,要在字符串本身中使用引号字符,您需要escape引号。因此,对于单引号字符串,您可以使用\'
和双引号字符串\"
。
因此,在您的情况下,您可以编写'Sid Meier\'s Pirates'
并且它将是一个有效的字符串。
另一种选择是将引号字符切换为双引号。这样你就不必转义字符串中的单引号字符(但是双引号字符):"Sid Meier's Pirates"
。