Во-первых, как сказал @ l33tnerd, f.close
должно быть вне цикла for.
Во-вторых, вы вызываете readline
только один раз, перед циклом. Это только читает первую строку. Хитрость в том, что в Python файлы выступают в роли итераторов, поэтому вы можете выполнять итерацию по файлу, не вызывая для него никаких методов, и это даст вам одну строку на итерацию:
if data.find('!masters') != -1:
f = open('masters.txt')
for line in f:
print line,
sck.send('PRIVMSG ' + chan + " " + line)
f.close()
Наконец, вы обращались к переменной lines
внутри цикла; Я полагаю, вы имели в виду line
.
Редактировать: Да, и вам нужно сделать отступ в содержании оператора if
.