如何从文本文件中删除标点符号

102 浏览
0 Comments

如何从文本文件中删除标点符号

import collections

import string

with open('cipher.txt') as f:

f = f.read().replace(' ', '').replace('\n','').lower()

f = f.strip(string.punctuation)

cnt = collections.Counter(f.replace(' ', ''))

for letter in sorted(cnt):

print(letter, cnt[letter])

如何去除标点符号?我不知道在哪里插入这行代码?

请问有人能修改我的代码,只保留字母吗?谢谢。

0
0 Comments

问题的原因:提问者想要知道如何从文本文件中删除标点符号。

解决方法:使用str.translate()函数来删除字符;任何映射到None的字符都会被删除。首先使用dict.fromkeys()方法创建一个将所有键映射为None的字典。然后使用translate()函数将文本中的字符替换为对应的映射值。

具体实现示例:

import string
remove = dict.fromkeys(map(ord, '\n ' + string.punctuation))
sample = 'The quick brown fox, like, totally jumped, man!'
result = sample.translate(remove)
print(result)

将代码应用到自己的程序中:

import string
remove = dict.fromkeys(map(ord, '\n ' + string.punctuation))
with open('cipher.txt') as inputfile:
    f = inputfile.read().translate(remove)

提问者进一步询问是否可以删除所有数字,回答者表示可以将string.digits添加到要删除的字符集中。并给出了示例代码:remove = dict.fromkeys(map(ord, '\n ' + string.punctuation + string.digits))

最后,提问者补充说添加了一个'0',但它仍然以第一个字符打印出来,并询问原因。

0