使用Python运行OS命令

时间:2017-11-01 23:07:28

标签: python python-3.x subprocess

我正在尝试使用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。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

看起来您实际上是在使用Python 2运行代码。  有关python 2的信息,请参阅the docs,其中包含:

  

<强>输入([提示])
  等效于eval(raw_input(prompt))。

也就是说,它将读取并以Python语句执行您的响应。

将其与Python 3进行比较,其中input只返回您的回复。

您可以进行一些测试:

  1. 运行python。你看到这样的东西:

    Python 2.7.13 (default, Sep  5 2017, 08:53:59) 
    

    或者:

    Python 3.6.2 (default, Oct  2 2017, 16:51:32) 
    
  2. 如果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