sparkandshine sparkandshine - 6 months ago 27
Python Question

How do I strip all leading and trailing punctuation in Python?

I know how to remove all the punctuation in a string.

import string

s = '.$ABC-799-99,#'

table = string.maketrans("","") # to remove punctuation
new_s = s.translate(table, string.punctuation)

print(new_s)
# Output
ABC79999


How do I strip all leading and trailing punctuation in Python? The desired result of
'.$ABC-799-99,#'
is
'ABC-799-99'
.

Answer

You do exactly what you mention in your question, you just str.strip it.

from string import punctuation
s = '.$ABC-799-99,#'

print(s.strip(punctuation))

Output:

 ABC-799-99

str.strip can take multiple characters to remove.

If you just wanted to remove leading punctuation you could str.lstrip:

s.lstrip(punctuation)

Or rstrip any trailing punctuation:

 s.rstrip(punctuation)
Comments