Хотя maketrans - самый быстрый способ сделать это, я никогда не вспоминаю синтаксис. Поскольку скорость редко является проблемой, и я знаю регулярные выражения, я хотел бы сделать это:
>>> line = "-[myfiles.txt] MY company.INC"
>>> import re
>>> re.sub(r'[^a-zA-Z0-9]', ' ',line)
' myfiles txt MY company INC'
Это дает дополнительное преимущество, заключающееся в том, что вы объявляете персонажа, которого вы принимаете, вместо того, которого вы отвергаете, что в этом случае кажется легче.
Конечно, если вы используете не ASCII-символы, вам придется вернуться к удалению символов, которые вы отклоняете. Если есть только знаки препинания, вы можете сделать:
>>> import string
>>> chars = re.escape(string.punctuation)
>>> re.sub(r'['+chars+']', ' ',line)
' myfiles txt MY company INC'
Но вы заметите