By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,587 Members | 1,718 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,587 IT Pros & Developers. It's quick & easy.

trouble using \ to escape %

P: n/a
I'm writing a python script that modifies the smb.conf file, and i need
to write the characters '%U' in the file. I tried making a string like
so:

str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/\%U" % (list[0], list[1],
list[0], list[1])

but i keep getting: "TypeError: not enough arguments for format
string". I've also tried making the string:

str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/\%" % (list[0], list[1],
list[0], list[1])

but i get: "ValueError: incomplete format". These errors lead me to
believe that for some reason it is not escaping the '%' character.
There has to be a way to write '%' to a file. Thanks in advance..

Cheers
-Lucas Machado

Jul 19 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Lucas Machado wrote in news:1113606334.524947.54630
@l41g2000cwc.googlegroups.com in comp.lang.python:
str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/\%U" % (list[0], list[1],
list[0], list[1])


In a format string use '%%' for a single % char':

str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/%%U" % (list[0], list[1],list[0],
list[1])
Rob.
--
http://www.victim-prime.dsl.pipex.com/
Jul 19 '05 #2

P: n/a
In article <11*********************@l41g2000cwc.googlegroups. com>,
"Lucas Machado" <LM*******@gmail.com> wrote:
I'm writing a python script that modifies the smb.conf file, and i need
to write the characters '%U' in the file.


print "%s = %%U" % "a" yields a = %U for me.

Maarten
Jul 19 '05 #3

P: n/a
Lucas Machado wrote:
I'm writing a python script that modifies the smb.conf file, and i need to write the characters '%U' in the file. I tried making a string like so:

str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/\%U" % (list[0], list[1],
list[0], list[1])

but i keep getting: "TypeError: not enough arguments for format
string". I've also tried making the string:

str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/\%" % (list[0], list[1],
list[0], list[1])

but i get: "ValueError: incomplete format". These errors lead me to
believe that for some reason it is not escaping the '%' character.
There has to be a way to write '%' to a file. Thanks in advance..

percentage = 93
# The string % operator uses "%%" for the percent sign.
format_string = "%d%% of all statistics are made up on the spot."
print format_string % percentage 93% of all statistics are made up on the spot. # When the % operator is not used, "%" is just another character.
print format_string %d%% of all statistics are made up on the spot.


Jul 19 '05 #4

P: n/a
On 15 Apr 2005 16:05:34 -0700, "Lucas Machado" <LM*******@gmail.com>
wrote:
I'm writing a python script that modifies the smb.conf file, and i need
to write the characters '%U' in the file. I tried making a string like
so:

str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/\%U" % (list[0], list[1],
list[0], list[1])

but i keep getting: "TypeError: not enough arguments for format
string". I've also tried making the string:

str1 = "[%s%s]\n\tpath = /mnt/samba/%s%s/\%" % (list[0], list[1],
list[0], list[1])

but i get: "ValueError: incomplete format". These errors lead me to
believe that for some reason it is not escaping the '%' character.
There has to be a way to write '%' to a file. Thanks in advance..


Looks like you've already got your answer, but here's some META-help:
what to do when you have a problem and your internet connection is
broken:

1. GUESS. Extrapolation from examples like DLE DLE in networking, $$
in m4 and \\ in *almost* everything might suggest trying %%

2. READ THE DOCS. Don't know what platform you're running on, but one
of what a recent blogger called "hopeless Windows people" [like me]
would do is this:

Start->Programs->Python 2.4->Python manuals, click on the Index tab,
type %, hit Enter ... scrolling down leads to a table of conversion
types, the last of which is the somewhat tautological """% No argument
is converted, results in a "%" character in the result."""

HTH,
John
Jul 19 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.