Python从文本中删除标点符号

时间:2013-11-07 15:02:23

标签: python python-3.x

我正在读一千行意大利文并创建一个独特单词词典。 我尝试了两种删除标点符号的方法: 使用字符串

for p in string.punctuation:
     word = word.replace(p, str())

或:

for line in f:
    for word in line.split():
        stripped_text =""
        for char in word:
            if char in '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~>><<<<?>>?123456789':
               char = ''
               stripped_text += char

我的问题是这仍然包含标点符号:

{'<<Dicerolti': 1,'piage>>.': 1,'succia?>>.': 1,…}

请问任何想法?

1 个答案:

答案 0 :(得分:1)

您可以使用re模块和一个小的printf样式技巧来构建一个标记任何标点符号以进行替换的正则表达式。

import string
import re
a = '>>some_crazy_string..!'
print re.sub('[%s]' % string.punctuation,'',a)

打印出来

  

somecrazystring

我已经多次使用这个技巧来“匿名化”日志文件。