我正在尝试使用Python执行OS命令并等待用户按下任何键。我希望以下代码能够正常执行...
import os
os.system("ls")
input("Press any key")
...但按 ENTER 后,我得到以下输出:
Press any key
Traceback (most recent call last):
File "/Users/user/test.py", line 4, in <module>
input("Press any key")
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
我在Mac OS High Sierra上运行Python 3.6.3。有什么想法吗?
答案 0 :(得分:3)
看起来您实际上是在使用Python 2运行代码。 有关python 2的信息,请参阅the docs,其中包含:
<强>输入([提示])强>
等效于eval(raw_input(prompt))。
也就是说,它将读取并以Python语句执行您的响应。
将其与Python 3进行比较,其中input
只返回您的回复。
您可以进行一些测试:
运行python
。你看到这样的东西:
Python 2.7.13 (default, Sep 5 2017, 08:53:59)
或者:
Python 3.6.2 (default, Oct 2 2017, 16:51:32)
如果python
获得python 2.x,请尝试使用python3
运行代码。
答案 1 :(得分:0)
您似乎意外地使用Python 2解释器运行它。虽然它在Python 3中运行良好:
$ python3
Python 3.6.1 (default, Jul 4 2017, 10:24:05)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> input("Press any key")
Press any key
''
>>>
而Python 2试图评估响应并给出语法错误
$ python2
Python 2.7.13 (default, Dec 23 2016, 05:05:58)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> input("Press any key")
Press any key
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing