python-3.x 计算文件中的总字数?

wlp8pajw  于 2023-03-09  发布在  Python
关注(0)|答案(2)|浏览(133)

我想找出一个文件中的单词总数(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的答案进行比较,看看我的结果是否正确,是否不是我做错的地方。

gjmwrych

gjmwrych1#

您可以使用regex尝试此解决方案。

#word counter using regex
import re
while True:
    string =raw_input("Enter the string: ")
    count = len(re.findall("[a-zA-Z_]+", string))
    if line == "Done": #command to terminate the loop
        break
    print (count)
print ("Terminated")
xpszyzbs

xpszyzbs2#

你可以使用f.tell()来计算文件中的总字数,如下所示:

with open("file.txt") as f:
    f.read()
    print(f.tell())

相关问题