解析简单类时意外遇到文件结束符

-2 投票
1 回答
683 浏览
提问于 2025-04-28 15:53

没有输入,只是一些伪私有字段和基本的赋值,但我还是遇到了“解析时意外的文件结束”这个错误。这个错误是在第28行出现的,而我的代码只有24行。

class Word:

    def _init_(self,text,size):
        self._text = text
        self._size = size

    def get_size(self):
        return self._size

    def set_size(self,size):
        self._size = size

    def set_text(self,text):
        self._text = text

    def get_text(self):
        return self._text

这是另外两个与这个类最相关的类,按照要求提供给你。

from word import Word

class WordCloud:
    def _init_(self, count, freq, stop_words):
        self._count = count
        self._freq = freq
        self._stop_words = stop_words
        self._max = freq.maximum 
        self._min = freq.minimum
        self._words = []

        def __createword__(self):
            keys = self._freq.keys()
            list(keys)
            values = self._freq.values()
            list(values)
            for i in (0,self._count,1):
                if keys[i] not in stop_word:
                    newWord = Word(keys[i], math.log(values[i]))
                    self._words.append(newWord)
                else:
                     i+= -1

    def save(self,filename):
        for i in self._words:
             firstnum = i.get_size()
             for j in self._words:
                 secondnum = j.get_size()
                 if(secondnum > firstnum)and(j>i):
                     self._words[i],self._words[j] = self._words[j],self._words[i]

        with open(filename,'w') as f:
             for word in self._words:
                f.write(word.get_text() + ':' + str(word.get_size()) +'\n')




class HtmlWordCloud(WordCloud):
    def _init_(self,count,freq,stop_words):
        WordCloud._init_(self, count, freq, stop_words)

    def save(self, filename):
        def size(self,size):
            maxSize = math.log(self._max)
            minSize= math.log(self._min)
            lowerBound = minSize
            for i in range(0,91,1):
                upperBound = minSize+((i+1)/91)*(maxSize-minSize)
                if(size==minSize):
                    return 10
                if(size>lowerBound) and (size<=upperBound):
                    return 10+i
                lowerBound = upperBound
        header = '''
<html>
    <head>
    </head>
    <body>
        <table>
            <tr>
'''

        f = open(filename,'w')
        f.write(header)
        itercount = 0
        for i in self._words:
            size = size(i.get_size())
            line ='''               <td><span style = "font-size:'+str(size)+'pt">'+i.get_text()+'</span></td>
'''
            f.write(line)
            itercount+=1
            if itercount is 5:
                newrow ='''
            </tr>
            <tr>
'''
                f.write(newrow)
                itercount = 0
        tail = '''
            </tr>
        </table>
    </body>
</html>'''
        f.write(tail)
        f.close()
暂无标签

1 个回答

0

从概念上讲,这个错误很简单。EOF的意思是Python在查找某些东西时到达了文件的末尾。这通常是因为你在某个地方漏掉了一个结束的引号、括号或大括号。如果Python告诉你出现了这个问题,那就是事实。

没有看到具体的代码和错误信息,我们只能猜测问题出在哪里。

撰写回答