Spawn/Exec with asterisk in argument
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
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