您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用subprocess.call('dir',shell = True)时找不到指定的文件

在Python中使用subprocess.call('dir',shell = True)时找不到指定的文件

我认为您的COMSPEC环境变量可能有问题:

>>> import os
>>> os.environ['COMSPEC']
'C:\\Windows\\system32\\cmd.exe'
>>> import subprocess
>>> subprocess.call('dir', shell=True)

    (normal output here)

>>> os.environ['COMSPEC'] = 'C:\\nonexistent.exe'
>>> subprocess.call('dir', shell=True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python27\lib\subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "c:\Python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
  File "c:\Python27\lib\subprocess.py", line 896, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

正如追溯所指出的那样,我通过深入subprocess.py并研究_execute_child函数来发现了这个潜在问题。在这里,您将找到一个if shell:该块开头的块,它将在环境中搜索所述变量,并使用它来创建用于启动该过程的参数。

python 2022/1/1 18:28:03 有198人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶