Op Tuesday 19 May 2015 19:36 CEST schreef Jon Ribbens: > On 2015-05-19, Cecil Westerhof <ce...@decebal.nl> wrote: >> At the moment I am playing with things like: p = >> subprocess.Popen('ls -l', shell = True, stdout = subprocess.PIPE) >> >> I think that most of the times this are the values I want. So it >> would be nice to overrule the defaults. What is the best way to do >> this? So creating a function that is exactly the same except for >> the defaults for shell and stdout (and maybe stderr). > > Yes. > > def shellprocess(cmd, **kwargs): > return subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, > **kwargs)
Will that not go wrong if I call it with? shellprocess('ls -1', shell = False) >> It is a little less important as I first thought, because I found >> the following: error, output = subprocess.getstatusoutput('ls -1') >> files_new = output.splitlines() But it is still nice to know. > > Why are you doing this anyway, rather than using os.listdir()? > Invoking subprocesses via the shell is very rarely a good idea. I want to rewrite a Bash script into a Python script. The 'ls -1' is only an example. But Popen and listdir give a different output. The sorting is different. But I could sort it myself. Another problem is that I work with a filter later on. But I could do that with Python also of-course. So maybe I should rethink what I want to do. ;-) -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list