PEP proposal: enhanced string functions
Stephen Ferg
steve at ferg.org
Tue Nov 13 15:54:47 EST 2001
I have been thinking about two proposals for PEPs, and I would like to see what
other folks think of them. They aren't anything major, just small enhancements
that I think would be easy to do and useful.
-- Steve Ferg (steve at ferg.org)
=========================================================
PEP: XXX1
Title: Optional pad character for string justification functions
Abstract
This PEP proposes a minor enhancement to the ljust(), rjust(), and center()
functions in the standard string module, and their corresponding methods for
string objects.
The proposal is to allow these functions and methods to take one optional
argument in addition to the arguments that they now accept. The argument is
called "pad", and it will default to a single space character. The pad
argument may be over-ridden only by an argument that consists of a single
character. If the pad argument is over-ridden, then the specified pad
character, rather than the default space character, will be used in padding
the string to the desired length.
Rationale
The rational for this PEP is that it will add some minor, but handy, ease-
of-use functionality to the affected functions. It will not break any
existing code, and it should be easy to implement.
This functionality will make it easier to do some simple but useful
string formatting tasks.
- It can be used to create leaders. For example:
import string
budget_items = [("Cookies", "13.25"), ("Sodas", "8.50")]
# print budget items with leaders
for item, expenditure in budget_items:
s1 = string.ljust(item, 15, ".")
s2 = string.rjust(expenditure, 10, ".")
print s1 + s2
produces:
Cookies.............13.25
Sodas................8.50
- It can be used to create headings:
s = "Chapter 2: Working with XML"
print s.center(50, "-")
produces
------------Chapter 2: Working with XML-----------
=========================================================
PEP: XXX2
Title: Optional argument for string strip functions
Abstract
This PEP proposes a minor enhancement to the lstrip(), rstrip(), and strip()
functions in the standard string module, and their corresponding methods for
string objects.
The proposal is to allow these functions and methods to take one optional
argument in addition to the arguments that they now accept. The argument is
called "stripchar". If the stripchar argument is unspecified or is
specified as None, then these functions and methods will do exactly what
they now do, and strip whitespace. If the stripchar argument is specified,
and not specified as None, it must contain a single character. If the
stripchar argument is specified, then rather than stripping out whitespace,
the functions and methods will strip out the specified stripchar character.
Rationale
The rational for this PEP is that it will add some minor, but handy, ease-
of-use functionality to the affected functions. It will not break any
existing code, and it should be easy to implement.
This functionality will make it easier to do some simple but useful
string formatting tasks.
- It can be used to strip out leaders. For example:
s = "Chapter 1........................"
print s.rstrip(".")
produces:
Chapter 1
- Its most frequent use will probably be be to assist in cleaning up files
by cleaning out junk characters. For example:
s = "?????????????Text that I want?????????"
s = s.strip("?")
produces a value for s of "Text that I want".
More information about the Python-list
mailing list