2016-01-15 8 views
0

так что я пишу систему входа с помощью python, и мне хотелось бы знать, могу ли я искать текстовый документ для имени пользователя, которое вы положили, а затем вывести строку, найти и найти документ с паролем. если он совпадает с паролем, который вы вставляете со строкой в ​​этой строке, тогда он печатает, что вы вошли в систему. Любая и вся помощь приветствуется. В моем предыдущем коде у меня есть поисковая строка 1, и если она не находит строку, в которую она добавляется, затем повторяется до тех пор, пока не найдет его. то он проверяет файл паролей в той же строкеPython Файл поиска для строки и получить номер строки строки

def checkuser(user,line): # scan the username file for the username 
    ulines = u.readlines(line) 
    if user != ulines: 
     line = line + 1 
     checkuser(user) 
    elif ulines == user: 
     password(user) 
+0

что 'new'? –

+0

Извините, пожалуйста, проигнорируйте это пример своей части, вырезанной из исходного кода, которая намного длиннее. new говорит, что это новая учетная запись или нет. поэтому, если new = 1, тогда он записывает имя пользователя и пароль –

+0

@ Коди Робертс, вы также хотите сначала найти файл с именем пользователя? –

ответ

2

fucntion, чтобы получить номер строки. Вы можете использовать это, как вы хотите

def getLineNumber(fileName, searchString): 
    with open(fileName) as f: 
     for i,line in enumerate(f, start=1): 
      if searchString in line: 
       return i 
    raise Exception('string not found') 
+0

спасибо, что работает чудесно. : D –

+1

Маленькое небольшое предложение: вместо 'return i + 1', используйте' enumerate (f, start = 1) 'или' enumerate (f, 1) ', в зависимости от того, что вам больше нравится –

+0

Что именно перечисляют? –

1

Pythonic путь для ответа

f = open(filename) 
line_no = [num for num,line in enumerate(f) if 'searchstring' in line][0] 
print line_no+1 
Смежные вопросы