Чтение ввода / вывода из файла (python) - PullRequest
1 голос
/ 18 января 2011

Хорошо, у меня есть бот 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 ]

4 голосов
/ 18 января 2011

Вероятно, вам следует просто пройти весь урок Python . Есть целый раздел о чтении и записи файлов .

1 голос
/ 18 января 2011

Я предполагаю, что ваши имена разделены строкой .

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"))
0 голосов
/ 18 января 2011
admins = set(nick.strip() for nick in open('masters.txt'))

def isadmin(nick):
    return nick.strip() in admins

Чтение файла достаточно дорого, и вы не хотите перечитывать файл слишком часто; если оно короткое, прочитайте его один раз и сохраните в памяти.

...