On Tue, Jan 4, 2011 at 1:56 PM, Ned Deily <n...@acm.org> wrote:

> In article
> <aanlktik8e7h8-tqw2=f5f30uke_d99yytu=0dvylk...@mail.gmail.com>,
>  Chris Weisiger <cweisi...@msg.ucsf.edu> wrote:
> > I want to sanitize some strings (e.g. escape apostrophes, spaces, etc.)
> > before passing them to the commandline via subprocess. Unfortunately I
> can't
> > seem to find any built-in function to do this. Am I really going to have
> to
> > write up my own sanitizer? Not that it'd be much effort, but I'd much
> rather
> > use an official function than risk forgetting something.
>
> The subprocess doc show how to use shlex to parse a shell-like command
> string.  I'm not sure I understand your use case but is there a reason
> you can't use 'shell=False' and set up the arguments yourself, thus
> avoiding the need for escapes?  Even if you really need to have a shell
> execute the string, you should be able to set up the arguments and call
> the shell directly.
>
> http://docs.python.org/library/subprocess.html
>

What I'm doing here is writing out a shell script for each of a list of
files I'm processing. The shell script has "hard-coded" paths in it
corresponding to the input file; subprocess is used solely to invoke the
shell script.

I recognize this is kind of a weird setup. It's mostly here so I can
delegate a chunk of functionality to be handled by a remote server queue --
just transfer the shell script over (as well as the input files), then run a
queue-submit program with the shell script as the argument. I can't do that
kind of thing just with subprocess.  The shell script approach also makes
some aspects of debugging more straightforward, but that's not why it's
here.


> --
>  Ned Deily,
>  n...@acm.org
>
>
-Chris
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to