如何从文本文件中删除标点符号
如何从文本文件中删除标点符号
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])
如何去除标点符号?我不知道在哪里插入这行代码?
请问有人能修改我的代码,只保留字母吗?谢谢。
问题的原因:提问者想要知道如何从文本文件中删除标点符号。
解决方法:使用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',但它仍然以第一个字符打印出来,并询问原因。