从文件中读取I / O(python)

时间:2011-01-17 21:24:19

标签: python input io irc

好的,我有一个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')

3 个答案:

答案 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

文件读取非常昂贵,您不希望过于频繁地重新读取文件;如果它很短,请阅读一次并将其保存在内存中。