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
答案 0 :(得分:4)
我将你问题中的文字加载到文本编辑器(vim)中,并显示了不可见的字符,这就是这个。
此处,空格显示为空格,标签显示为^I
。如您所见,您的第二行for
和第一行if
行用空格缩进,文件的其余部分缩进了标签。
从一般意义上讲,这在Python中造成了一个真正的混乱,其中缩进在语法结构上具有重要意义。
在Python 3中,将标签和空格混合为缩进是一个致命的编译错误。这就是您遇到的问题(TabError
)。
请参阅PEP-8,其中建议仅使用空格,不使用制表符,并使用4空格缩进。