Re: Newbie question: non-escaping backslashes before placeholders

Jon Mills <[email protected]> Thu, 22 Oct 2009 08:40:30 +0100
Newsgroups gmane.comp.python.cheetah
Message-ID <[email protected]>
Thanks Tyler, that works fine. It hadn't occurred to my that I could
use Python's string formatting as well as Cheetah's.

Great support. Thanks again.

On Thu, Oct 22, 2009 at 8:31 AM,  <[email protected]> wrote:
>
> On Thu, 22 Oct 2009, Jon Mills wrote:
>
>> Tyler,
>>
>> Thanks for your quick response, unfortunately that doesn't seem to fix
>> the problem.
>>
>> If I change my test code to:
>> from Cheetah.Template import Template
>> t = Template('#config_file    "c:\${p1}\${p2}"')
>> t.p1 = 'foo'
>> t.p2 = 'bar'
>> print t
>>
>> I get the following output:
>> #config_file    "c:${p1}${p2}"
>
>
> Ah right, I'm daft, the backslash is escaping the dollarsign.
>
> I don't think there's a really good means of dealing with this sort of
> usecase to be honest, you could work around it for now by doing
> something like:
>
>        #set cpath = "c:\\%s\\%s" % ($p1, $p2)
>        \#config_file   "$cpath"
>
> Less than ideal, I agree, but will at least get you going until I
> have time to dig into the compiler code
>
>
> Cheers,
> -R. Tyler Ballance
> --------------------------------------
>  GitHub: http://github.com/rtyler
> Twitter: http://twitter.com/agentdero
>   Blog: http://unethicalblogger.com
>> On Thu, Oct 22, 2009 at 8:00 AM,  <[email protected]> wrote:
>> >
>> > On Thu, 22 Oct 2009, Jon Mills wrote:
>> >
>> >> Hi,
>> >>
>> >> I'm new to Cheetah, and new to this list,
>> >>
>> >> I've got a question that I'm sure must have been asked before, but I
>> >> can't find the answer in the documentation so I'm hoping somebody can
>> >> help.
>> >>
>> >> I'm using Cheetah 2.2.1 / Python 2.5 under Windows to create some
>> >> config files and I'm having problems creating windows paths.
>> >>
>> >> There's a cut-down example below.
>> >>
>> >> from Cheetah.Template import Template
>> >> t = Template('#config_file    "c:\$p1\$p2"')
>> >> t.p1 = 'foo'
>> >> t.p2 = 'bar'
>> >> print t
>> >
>> > If you wrap them in curly braces you should be fine, i.e.
>> >
>> >        "c:\${p1}\${p2}"
>> >
>> > Let me know if that doesn't work for you
>



-- 
Jon Mills
[email protected]
Sent from Stoke Gifford, South Gloucestershire, United Kingdom

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference