好的,我有一个IRC机器人,我有一个充满昵称的文件(这是机器人的管理员),例如,如果有人在频道中键入“!op”,我将如何让机器人阅读文件,以查看键入“!op”的用户是否在管理员列表中,如果他然后继续操作..我只是对如何让它为授权用户读取文件感到困惑..你的帮助会很感激的。感谢。
我可以使用这样的东西..
def isadmin(nick, 'masters.txt'):
for admin in file:
if nick == admin.rstrip():
return True
return False
if data.find('!op') != -1:
nick = data.split('!')[ 0 ].replace(':','')
if nick == isadmin(nick, open('masters.txt')):
sck.send('MODE ' + chan + ' +o ' + nick + '\r\n')
else:
sck.send('PRIVMSG ' + chan + ' :' + ' youre not my master ' + '\r\n')
答案 0 :(得分:4)
你可能应该浏览整个Python tutorial。有一整节关于reading and writing files。
答案 1 :(得分:1)
我认为你的名字是分隔线。
def isadmin(name, file):
for admin in file:
if name == admin.rstrip():
return True
return False
但它们也可以以逗号分隔。
def isadmin(name, file):
for admins in file:
if name in admins.rstrip().split(","):
return True
return False
并像这样使用它:
isadmin("bob", open("admins.txt"))
答案 2 :(得分:0)
admins = set(nick.strip() for nick in open('masters.txt'))
def isadmin(nick):
return nick.strip() in admins
文件读取非常昂贵,您不希望过于频繁地重新读取文件;如果它很短,请阅读一次并将其保存在内存中。