版本为最新的3.5.0
输入的是文档中的示例代码,非但没有得到想要的结果,还出现了如下错误
>>> subprocess.run(["ls", "-l"]) # doesn't capture output CompletedProcess(args=['ls', '-l'], returncode=0) >>> subprocess.run("exit 1", shell=True, check=True) Traceback (most recent call last): ... subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1 >>> subprocess.run(["ls", "-l", "/dev/null"], stdout=subprocess.PIPE) CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0, stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\n')
结果应该如上所示。代码在文档17.5. subprocess — Subprocess management中。
我输入以后得到的结果如下:
>>> import subprocess >>> subprocess.run(["ls", "-1"]) Traceback (most recent call last): File "", line 1, in subprocess.run(["ls", "-1"]) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 696, in run with Popen(*popenargs, **kwargs) as process: File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 950, in __init__ restore_signals, start_new_session) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 1220, in _execute_child startupinfo) FileNotFoundError: [WinError 2] 系统找不到指定的文件。
环境为自带的IDLE,请问这是怎么回事?
大概是因为win下面没有 ls 这个程序吧……