This question already has answers here:
Windows can't find the file on subprocess.call()
                                
                                    (6个答案)
                                
                        
                                去年关闭。
            
                    
我在Windows中运行以下命令:

from subprocess import check_output
check_output(["dir", "D:/C_Drive/Desktop/Kaggle"])


我遇到以下问题,“ D:/ C_Drive / Desktop / Kaggle”当前是我的桌面上的文件夹。

-- WindowsError                              Traceback (most recent call last) <ipython-input-9-6f7efc3bbf8c> in <module>()
     10
     11 from subprocess import check_output
---> 12 check_output(["dir", "D:/C_Drive/Desktop/Kaggle"])
     13
     14 # Any results you write to the current directory are saved as output.

C:\Program Files\Anaconda2\lib\subprocess.pyc in check_output(*popenargs, **kwargs)
    565     if 'stdout' in kwargs:
    566         raise ValueError('stdout argument not allowed, it will be overridden.')
--> 567     process = Popen(stdout=PIPE, *popenargs, **kwargs)
    568     output, unused_err = process.communicate()
    569     retcode = process.poll()

C:\Program Files\Anaconda2\lib\subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
    709                                 p2cread, p2cwrite,
    710                                 c2pread, c2pwrite,
--> 711                                 errread, errwrite)
    712         except Exception:
    713             # Preserve original exception in case os.close raises.

C:\Program Files\Anaconda2\lib\subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite)
    957                                          env,
    958                                          cwd,
--> 959                                          startupinfo)
    960             except pywintypes.error, e:
    961                 # Translate pywintypes.error to WindowsError, which is

WindowsError: [Error 2] The system cannot find the file specified

最佳答案

添加shell=True将被罚款

from subprocess

import check_output print(check_output(["dir", "D:\\C_Drive\\Desktop\\Kaggle"],shell=True).decode("utf-8"))


受此职位启发
Windows can't find the file on subprocess.call()

关于python - 系统找不到为check_output指定的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40213891/

10-12 21:46