缩进错误? Python3x

时间:2017-01-07 20:47:28

标签: python python-3.x error-handling

Python3告诉我在缩进中有错误。我尝试了大约一百万种不同的缩进,我迷失了。它并没有直接指向错误,只是指向一个括号,让我自己弄明白。

import os

for root, dirs, files in os.walk('C:\\Users\\Tom\\Desktop'):
    for file in files:
        if file.endswith('.txt'):
            f = open("test.txt", "r+")
            f.seek(0)
        for line in f:
            a = f.read()
            f.seek(0)
        for char in a:
            o = ord(char)
            f.write(str(o))
            f.truncate()

道歉,我忘了包含错误信息。

File "C:\Users\Tom\Desktop\Search.py", line 6
    f = open("test.txt", "r+")
                             ^
TabError: inconsistent use of tabs and spaces in indentation

1 个答案:

答案 0 :(得分:4)

我将你问题中的文字加载到文本编辑器(vim)中,并显示了不可见的字符,这就是这个。

enter image description here

此处,空格显示为空格,标签显示为^I。如您所见,您的第二行for和第一行if行用空格缩进,文件的其余部分缩进了标签。

从一般意义上讲,这在Python中造成了一个真正的混乱,其中缩进在语法结构上具有重要意义。

在Python 3中,将标签和空格混合为缩进是一个致命的编译错误。这就是您遇到的问题(TabError)。

请参阅PEP-8,其中建议仅使用空格,不使用制表符,并使用4空格缩进。