On Mon, 16 Apr 2012 12:03:31 +0200, Kiuhnm wrote: > On 4/16/2012 4:42, Steven D'Aprano wrote: >> On Sun, 15 Apr 2012 23:07:36 +0200, Kiuhnm wrote: >> >>> This is the behavior I need: >>> path = path.replace('\\', '\\\\') >>> msg = ". {} .. '{}' .. {} .".format(a, path, b) >>> Is there a better way? >> >> >> This works for me: >> >>>>> a = "spam" >>>>> b = "ham" >>>>> path = r"C:\a\b\c\d\e.txt" >>>>> msg = ". %s .. %r .. %s ." % (a, path, b) print msg >> . spam .. 'C:\\a\\b\\c\\d\\e.txt' .. ham . > > I like this one. Since I read somewhere that 'format' is preferred over > '%', I was focusing on 'format' and I didn't think of '%'. Anyway, it's > odd that 'format' doesn't offer something similar.
But it does. Before making assumptions about what format does and does not offer, remember that the Fine Manual is your friend. py> print "%r" % r'C:\a\b\c\d.txt' 'C:\\a\\b\\c\\d.txt' py> print "{0!r}".format(r'C:\a\b\c\d.txt') 'C:\\a\\b\\c\\d.txt' -- Steven -- http://mail.python.org/mailman/listinfo/python-list