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