On Tue, 14 Sep 2010 01:07:48 +0200, AmFreak wrote: > im using a QFileDialog to let the user select a path that is used later in > a command send to the shell like this: > > retcode = Popen(command + " " + path, shell=True, stdout = PIPE, stderr = > PIPE) > > The problem that occurs now is when the user selects an "ugly" path like > this /home/user/!" ยง$/. > The shell don't understand the special chars so i have to escape them with > "\" .
Is there some fundamental reason why you're using a shell? Most of the time, you're better off executing the command directly, i.e.: process = Popen([command, path], shell=False, ...) If you must "unparse" the path for the benefit of the shell, the first question is: *which* shell? For a typical Bourne shell, quoting a string using: qstring = r"'" + string.replace(r"'", r"'\''") + r"'" should be reliable. This won't work for Windows, though; look at the source code for the subprocess module for the (rather bizarre) quoting rules used by Windows. -- http://mail.python.org/mailman/listinfo/python-list