我想找出一个文件中的单词总数(text/string)。我可以用我的代码得到一个输出,但我不确定它是否正确。这里有一些示例文件,供大家尝试并查看您得到的结果。还要注意,不允许使用任何模块/库。sample 1:https://www.dropbox.com/s/kqwvudflxnmldqr/sample1.txt?dl=0
样品2-https://www.dropbox.com/s/7xph5pb9bdf551h/sample2.txt?dl=0
样品3-https://www.dropbox.com/s/4mdb5hgnxyy5n2p/sample3.txt?dl=0
在数单词之前你必须考虑一些事情。
1.一个句子是一个单词序列,后跟一个句号、问号或感叹号,然后必须后跟一个引号(因此句子是引语或口语的结尾),或白色(空格、制表符或换行符)。例如,如果句号不在句尾,则视为白色,所以用来结束单词。比如3.42是两个单词。或者P.yth.on是三个单词。
1.双连字符(--)代表的是一个空格字符。也就是说,首先,我打开并读取了文件以获得所有文本。然后我用空格替换了所有无用的字符,这样更容易计算单词数。这也包括'--'。
然后我把文本拆分成单词,创建一个字典来存储单词的数量。完成字典后,我把所有的值加起来得到单词的总数,并打印出来。代码如下:
def countwords():
filename = input("Name of file? ")
text = open(filename, "r").read()
text = text.lower()
for ch in '!.?"#$%&()*+/:<=>@[\\]^_`{|}~':
text = text.replace(ch, ' ')
text = text.replace('--', ' ')
text = text.rstrip("\n")
words = text.split()
count = {}
for w in words:
count[w] = count.get(w,0) + 1
wordcount = sum(count.values())
print(wordcount)
因此,对于sample 1文本文件,我的字数是321,对于sample 2:542对于样品3:139
我希望我能将这些答案与一些pythonMaven的答案进行比较,看看我的结果是否正确,是否不是我做错的地方。
2条答案
按热度按时间gjmwrych1#
您可以使用regex尝试此解决方案。
xpszyzbs2#
你可以使用
f.tell()
来计算文件中的总字数,如下所示: