我是 python
的初学者,
我有这个错误:
Error :
def on_data(self,data):
^
IdentationError : unindent does not match any outer indentation level
我在 windows 8.1
中使用 notepad++
进行编码 . 我不明白为什么我有这个错误,我已经注意到标签和空间 .
我想在self.file中保存数据
这是我的代码:
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
from tweepy import Stream
import tweepy
import time
class StdOutListener(StreamListener):
def __init__(self,file):
self.file = file
def on_data(self, data):
print data
self.file.write(data)
return True
def on_error(self, status):
print status
def main() :
file = open('work.txt','w')
listn = StdOutListener(file)
consumer_key=""
consumer_secret=""
access_token=""
access_token_secret=""
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
#api = tweepy.API(auth)
#filename=open('helloworld.txt','r')
#f=filename.readlines()
#filename.close()
#for line in f:
# api.update_status(line)
stream = Stream(auth, listn)
stream.filter(track=['lol'])
file.close()
4 回答
您正在混合制表符和空格 . 不要那样做 . 具体来说,
__init__
函数体使用制表符缩进,而on_data
方法则不缩进 .以下是我的文本编辑器中代码的屏幕截图;我将制表位设置为8个空格(这是Python使用的)并选择了文本,这使编辑器显示带有连续水平线的制表符:
您的编辑器设置为将标签扩展到每四列,因此方法似乎排成一行 .
运行您的代码:
并修复找到的所有错误 . 然后将编辑器配置为仅使用空格进行缩进;一个好的编辑器每次使用TAB键时都会插入4个空格 .
在记事本上如果你得到那个错误只需按住一次,按下TAB按钮一次,它会在你的代码中的任何地方添加标签,然后使用shift选项卡删除你刚刚添加的额外标签 . 它会将所有“标签”更改为4个空格 . 当然,转到设置 - >首选项 - >选项卡设置 - >替换为空格 . 未来的标签现在将是4个空格 .
我有相同的问题很多次 . 特别是当我试图从编辑器在线粘贴几行代码时,这种情况发生了,这些空间没有正确地注册为“制表符”或“空格” .
然而,修复非常简单 . 我只需要删除该特定集中所有代码行的间距,并使用正确的选项卡再次将其间隔开 . 这解决了我的问题 .
Python IndentationError unindent does not match any outer indentation level
要么