如何使用string.punctuation删除文本文件中的标点符号

时间:2018-06-01 20:58:31

标签: python replace

制作一个函数来计算我以纯文本格式下载的书中20个最常用的单词。我要说的python教科书说使用import string然后使用replacetranslate方法删除任何标点符号,但是当我在替换步骤后打印出行后,所有的线条都有标点符号。我尝试移动line = line.strip()line = line.replace(string.punctuation,'')步骤,但这不起作用。我从来没有使用过替换,所以我可能会误用我知道的所有内容。我的其他程序都有效,只是这一步令我感到沮丧。

import string
def function():
    infile = open('gutbook.txt','r',encoding='utf-8')
    count = dict()
    list2 = list()
    for line in infile:
        line = line.strip()
        line = line.replace(string.punctuation,'')
        line = line.lower().split()
        if line== []:
            continue
        for i in line:
            count[i] = count.get(i,0) + 1
    for key,value in count.items():
        newtuple = (value,key)
        list2.append(newtuple)
    list3 = sorted(list2,reverse = True)
    print(list3[:20])



function()

1 个答案:

答案 0 :(得分:0)

使用Regex。

<强>实施例

import re
import string

text = "Hello ! #$%&'()*+,-./:;<=>?@[\]^_`{|}~ World"
print(re.sub("[" + re.escape(string.punctuation) + "]", "", text))
#or
print( re.sub(r'[^a-zA-Z0-9\s]','',text) )