2

I run the following in windows:

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

I got the following problem, "D:/C_Drive/Desktop/Kaggle" is currently a folder on my Desktop.

-- 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
cchamberlain
  • 17,444
  • 7
  • 59
  • 72
william007
  • 17,375
  • 25
  • 118
  • 194
  • Why are you using subprocess to list the files in a directory? Does `os.listdir()` work for that path? Have you tried any of the parent directories, or the same command in a console window? – Martijn Pieters Oct 24 '16 at 08:35
  • I am have just learnt the command here https://www.kaggle.com/dvasyukova/expedia-hotel-recommendations/predict-hotel-type-with-pandas not sure why it uses check_output though – william007 Oct 24 '16 at 08:40

1 Answers1

4

add shell=True will be fined

from subprocess 

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

inspired by this post Windows can't find the file on subprocess.call()

Community
  • 1
  • 1
william007
  • 17,375
  • 25
  • 118
  • 194