以下代码在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
任何想法?
答案 0 :(得分:4)
问题来自于当你将标签和空格混合用于缩进时python不喜欢它。 Python依赖于空格来确定缩进的级别,从而确定范围。
结果,当你有一行有两个 TAB 的行,然后是一行4 SPACE 和一个 TAB ,python继续发疯并告诉你你的缩进已经关闭。
TL; DR:不要混合标签和空格。坚持一个或另一个,你应该没事。
有趣的是:如果你真的/真的/真的想忽略这个提示并尝试混合两者,我相信 TAB 被认为相当于8 SPACE 大骨节病>秒。因此,理论上你可以在那里做一些缩进数学,以弄清楚每一行缩进多少,混合两者。但这是非常不受推荐的,我可能只是为了说它而在地狱中燃烧
答案 1 :(得分:1)
在文本编辑器中打开文件,以便查看空格。您可能会混合标签和空格。