How to remove punctuation marks from a string in Python 3.x using .translate()?

How to remove punctuation marks from a string in Python 3.x using .translate()?

You have to create a translation table using maketrans that you pass to the str.translate method.

In Python 3.1 and newer, maketrans is now a static-method on the str type, so you can use it to create a translation of each punctuation you want to None.

import string

# Thanks to Martijn Pieters for this improved version

# This uses the 3-argument version of str.maketrans
# with arguments (x, y, z) where x and y
# must be equal-length strings and characters in x
# are replaced by characters in y. z
# is a string (string.punctuation here)
# where each character in the string is mapped
# to None
translator = str.maketrans(, , string.punctuation)

# This is an alternative that creates a dictionary mapping
# of every character from string.punctuation to None (this will
# also work)
#translator = str.maketrans(dict.fromkeys(string.punctuation))

s = string with punctuation inside of it! Does this work? I hope so.

# pass the translator to the strings translate method.
print(s.translate(translator))

This should output:

string with punctuation inside of it Does this work I hope so

The call signature of str.translate has changed and apparently the parameter deletechars has been removed. You could use

import re
fline = re.sub([+string.punctuation+], , fline)

instead, or create a table as shown in the other answer.

How to remove punctuation marks from a string in Python 3.x using .translate()?

In python3.x ,it can be done using :

import string
#make translator object
translator=str.maketrans(,,string.punctuation)
string_name=string_name.translate(translator)

Leave a Reply

Your email address will not be published. Required fields are marked *