On Mon, 1 Aug 2005, Kent Johnson wrote:
> > I would like to construct some string objects using the cprintf-style > > format: > > > > command_string = "diff -u %s %s > %s.patch" % ( src, dst, file ) > > > > Of course it is illegal in python but I couldn't figure out a way to > > construct strings with that kind of formatting and substitution. > > Actually that is correct as written! (though 'file' is a poor choice of > variable name as it shadows the built-in file() function...) [text cut] Just as a side note, building command strings like this is usually not a good idea, just because of issues like shell quotation. Unfortunately, there are a lot of examples on the web that do use string interpolation to build up command lines, but there is usually a better way: Python comes with a subprocess module which can take a list of arguments. For example: ###### >>> import subprocess >>> p = subprocess.Popen(['wc', '-l', '/usr/share/dict/words'], ... stdout=subprocess.PIPE) >>> >>> p.stdout.read() '234937 /usr/share/dict/words\n' ###### The advantage of passing a list instead of a formatted string here is that we don't have to worry if our files contains spaces in their names. Hope this helps! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor