Python缩进错误

时间:2014-05-30 04:16:31

标签: python

以下代码在for语句中返回一些奇怪的缩进错误。控制台将错误指向list.append()方法。这应该是一个愚蠢的错误,有时我是Python新手。 HEH

import os
import sys
import re
import glob

from Text import Text
from Word import Word
from FileCategory import FileCategory

class FileIO(object):

    def loadFile(self, filePath):

        newText = Text(os.path.basename(filePath))

        words=[]
        with open(filePath) as buff:
            content = buff.read().lower()
            re.sub("[^\w\s]", "", content)
            re.sub("[0-9]", "", content)
            words = content.Split(' ')

        for word in words:
            wordFound = next(auxWord for auxWord in newText.words if auxWord.textWord == word) 
            if wordFound is None:
                newWord = Word(word, 1)
                newText.words.append(newWord)
            else:
                wordFound.countInText+=1

        return newText

    def loadFilesFromDirectory(self, path):
        newCategory = FileCategory()
        files=[]
        os.chdir(path)
        for file in glob.glob("*.txt"): 
            files.append(file)

        for filePath in files:
            newFile = loadFile(filePath)
            if newFile is not None:
                newCategory.files.append(newFile)

        return newCategory

日志:

Traceback (most recent call last):
  File "aprendizadMaq.py", line 6, in <module>
    from FileIO import FileIO
  File "/home/adolfosrs/Dropbox/7º Semestre/IA/T2/pyAprendizadMaq/FileIO.py", line 38
    files.append(file)
        ^
IndentationError: expected an indented block

任何想法?

2 个答案:

答案 0 :(得分:4)

问题来自于当你将标签和空格混合用于缩进时python不喜欢它。 Python依赖于空格来确定缩进的级别,从而确定范围。

结果,当你有一行有两个 TAB 的行,然后是一行4 SPACE 和一个 TAB ,python继续发疯并告诉你你的缩进已经关闭。

TL; DR:不要混合标签和空格。坚持一个或另一个,你应该没事。

有趣的是:如果你真的/真的/真的想忽略这个提示并尝试混合两者,我相信 TAB 被认为相当于8 SPACE 秒。因此,理论上你可以在那里做一些缩进数学,以弄清楚每一行缩进多少,混合两者。但这是非常不受推荐的,我可能只是为了说它而在地狱中燃烧

答案 1 :(得分:1)

在文本编辑器中打开文件,以便查看空格。您可能会混合标签和空格。