выборка из файла по совпадению в сроке файла передаваемой строки
хочу произвести выбор строки, в которой есть совпадение. Вот так работает
def get_return(time_input):
with open('nginx.log','r') as file:
for str1 in file:
get_time = str1[str1.find(':')-2 : str1.find(':')+6]
while (time_input == get_time):
print ('show get_time : ' + get_time)
return str1
vr = get_return('07:01:45')
print (vr)
а вот так нет.
def return_time():
with open('nginx-time.log','r') as file:
for str1 in file:
time = str1
print ('show time : ' + time)
check = get_return(time)
print('show check : ' + str(check))
Возвращает None. Почему?
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
Потому что в первом случае есть return, а во втором нет. А когда нет return, то функция в любом случае возвращает None.
Автор решения: миха капа
→ Ссылка
Вот так работает как надо.
def get_return(time_input):
count = 0 # число совпадений
with open('nginx.log','r') as file:
for str1 in file: # по каждой строке пробегаем
get_time = str1[str1.find(':')-2 : str1.find(':')+6]
#while (time_input == get_time):
if (time_input == get_time):
#print ('show get_time : ' + get_time)
count+=1
return count
def return_time():
with open('nginx-time.log','r') as file:
for str1 in file:
time = str1.rstrip('\n')
#print ('show time : ' + time)
check = get_return(time)
#print('show check : ' + str(check))
return check