On 05/12/2016 15:05, Chris Angelico wrote:
On Tue, Dec 6, 2016 at 1:11 AM, BartC <b...@freeuk.com> wrote:

BTW what does Popen() do when one argument is '*.*'? Will that get expanded
to multiple extra arguments, and at what point will it be expanded?

Nope. Popen is not a shell.

It sounds as if you want a nerfed shell. Go ahead! I'm sure one
exists. It'll frustrate you no end once you get used to a better
shell, though - always does when I find myself on Windows...

That's not the point I was making.

Say you have this program a.py:

  import sys
  print (sys.argv)

And let's say there are just 3 files in the current directory: a.py, b.py and c.py.

If run from a Linux shell:

  python a.py *

The output is: ['a.py', 'b.py', 'c.py'] or something along those lines (there might be two copies of a.py).

Are you saying that if someone executes:

  subprocess.Popen(["python","a.py", "*"])

the output will be: ['a.py','*']?

In that case forget Windows vs. Linux, you now have a program that will get command parameters processed differently depending on whether it was invoked from a shell or not.

Or a program that sometimes will see "*" as an argument, and sometimes a big list of files that merges into all the other arguments.

--
bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to