Spawn/Exec with asterisk in argument

2007-04-18 Thread jeremyfee
The spawn* and exec* functions appear to escape asterisks, I'm
guessing all shell characters too, before the spawn/exec'ed process
sees them.  Is there a way around this?

Not sure if this is a bug or a "feature".

user$ touch test.txt
user$ ls -l *
-rw-r--r--   1 user  user  0 Apr 18 18:30 test.txt
user$ ls -l \*
ls: *: No such file or directory
user$ python
Python 2.3.5 (#1, Aug 12 2006, 00:08:11)
[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("ls -l *")
-rw-r--r--   1 user  user  0 Apr 18 18:30 test.txt
0
>>> os.spawnvp(os.P_WAIT, "ls", ("ls", "-l", "*"))
ls: *: No such file or directory
1

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Spawn/Exec with asterisk in argument

2007-04-19 Thread jeremyfee
On Apr 18, 7:24 pm, Michael Hoffman <[EMAIL PROTECTED]> wrote:

> If you want to process asterisk the way the shell does, you can pass
> things through the shell. os.system is one way of doing that. Probably
> better is:
>
> subprocess.check_call("ls -l *", shell=True)

Thanks for the reply Michael.  I used ls as a simple example, but I'm
using this with scp to transfer files and need shell expansion.  It
makes sense since the shell isn't spawning the process, but it's been
a while since I've worked with ipc.  I had converted to os.system
before posting, but subprocess gives me more control than I originally
hoped for

Thanks again

-- 
http://mail.python.org/mailman/listinfo/python-list