0
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 运行的。当MM.pypython 文件夹中的 ( ) 副本运行时,它可以工作。顺便说一句,这是指向并单击我没有输入任何内容。

4

2 回答 2

3

Use " instead of ':

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 is nice enough to highlight your invalid syntax for you.

If some tool (spyder GUI) executes this invalid code, go get a better tool.

于 2013-11-03T18:36:01.747 回答
1

实际解释这个问题:字符串可以用双引号"和单引号括起来'。只要字符串以相同的符号开头和结尾,您使用这两者中的哪一个没有区别。"Hello"与 相同的字符串也是如此'Hello'

一旦引号字符第二次出现,字符串就会结束。因此,在您的情况下,'Sid Meier's Pirates'字符串已经在 之后结束Meier,因此其余部分不是字符串,而是解释器尝试解释的普通 Python 代码(通常会失败)。

因此,要在字符串本身中使用引号字符,您需要对引号进行转义。因此,对于单引号字符串,您可以使用\'和双引号字符串\"

因此,在您的情况下,您可以编写'Sid Meier\'s Pirates'它,这将是一个有效的字符串。

另一种选择是将引号字符切换为双引号。这样您就不必转义字符串中的单引号字符(但双引号字符):"Sid Meier's Pirates".

于 2013-11-03T18:55:16.647 回答