簡體   English   中英

計算Python文本文件中的段落和最常用詞

[英]Counting Paragraph and Most Frequent Words in Python Text File

我正在嘗試計算文本文件(與此有關的任何文本文件)中的段落數和最常用的詞,但是運行代碼時似乎輸出為零,也沒有錯誤。 關於我要去哪里的任何提示?

filename = input("enter file name: ")
inf = open(filename, 'r')
#frequent words 
wordcount={}
for word in inf.read().split():
 if word not in wordcount:
    wordcount[word] = 1
else:
    wordcount[word] += 1
for key in wordcount.keys():
    print ("%s %s " %(key , wordcount[key]))

#Count Paragraph(s)
linecount = 0
for i in inf:
   paragraphcount = 0
   if '\n' in i:
      linecount += 1
   if len(i) < 2: paragraphcount *= 0
   elif len(i) > 2: paragraphcount = paragraphcount + 1
   print('%-4d %4d %s' % (paragraphcount, linecount, i))  
inf.close()
filename = raw_input("enter file name: ")

wordcount={}
paragraphcount = 0
linecount = 0
with open(filename, 'r') as ftext:

    for line in ftext.readlines():
        if line in ('\n', '\r\n'):
            if linecount == 0:
                paragraphcount = paragraphcount + 1
            linecount = linecount + 1
        else:
            linecount = 0
            #frequent words
            for word in line.split():
                wordcount[word] = wordcount.get(word,0) + 1




print wordcount
print paragraphcount

當您讀取文件時,會有一個光標指示當前正在讀取哪個字節。 在您的代碼中,您試圖讀取文件兩次,並且遇到了奇怪的行為,這應該暗示您做錯了什么。 對於解決方案,

正確的方法是什么?

您應該閱讀一次文件,存儲每一行​​,然后使用同一存儲庫查找字數和段落數。 而不是嘗試閱讀兩次。

當前代碼是怎么回事?

首次讀取文件時,當您嘗試讀取行時,如果將字節游標設置為文件末尾,則它會返回一個空列表,因為它試圖讀取文件末尾。 您可以通過重置文件指針(光標)來解決此問題。

在嘗試讀取行之前,請調用inf.seek(0) 但是,除此以外,您應該專注於實現我在第一部分中提到的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM