Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Fatal1ty2013
0 / 0 / 0
Регистрация: 18.07.2018
Сообщений: 3
1

Аналог grep -b на python

18.07.2018, 16:56. Просмотров 152. Ответов 5
Метки нет (Все метки)

Всем привет.Столкнулся с такой проблемой.Есть функция

Python
1
2
3
4
5
6
7
8
def grepA(word,file,num=0):
       with open(file) as f:
        for line in f:
            if word in line:
                print(line + ''.join(islice(file, num)))
 
            else:
                print('No match')
при поиске по файлу если указать num выводит следующие значения в файле после найденного,в количестве указанном в num.
Как сделать чтобы выводились значения перед найденным ?
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2018, 16:56
Ответы с готовыми решениями:

Python аналог дескрипторовв fd_set и макросов FD_ZERO, FD_SET
Понадобилось переписать программу с с++ на python, не могу разобраться с...

Python - момент истины. Python - как оружие возмездие против системы
Какие модули в python мне нужны для взлома баз данных? Перехвата информации?...

Cx_freeze python error in main script как исправить- Python
Пытался создать из .py .exe , но при запуске .exe получаю ошибку вот код...

Как из Python скрипта выполнить другой python скрипт?
Как из Python скрипта выполнить другой python скрипт? Если он находится в той...

Почему синтаксис Python 2.* и Python 3.* так отличается?
Привет! Решил на досуге заняться изучением Python'a. Читаю книгу по второму...

5
dondublon
2146 / 1064 / 213
Регистрация: 17.03.2012
Сообщений: 6,417
Записей в блоге: 5
18.07.2018, 17:19 2
Из доки:
Python
1
2
3
class islice(builtins.object)
 |  islice(iterable, stop) --> islice object
 |  islice(iterable, start, stop[, step]) --> islice object
0
Fatal1ty2013
0 / 0 / 0
Регистрация: 18.07.2018
Сообщений: 3
18.07.2018, 17:50  [ТС] 3
dondublon, можете пояснить как сделать чтобы выводились значения перед найденным значением?если ввожу step отрицательный получаю эксепшн.Я совсем новичок
Заранее спасибо
0
dondublon
2146 / 1064 / 213
Регистрация: 17.03.2012
Сообщений: 6,417
Записей в блоге: 5
18.07.2018, 18:27 4
start ставите None, stop - ваш бывший start.
0
Fatal1ty2013
0 / 0 / 0
Регистрация: 18.07.2018
Сообщений: 3
19.07.2018, 10:25  [ТС] 5
dondublon,
Сделал так как вы сказали
Python
1
print(line + ''.join(islice(file, None,0,num)))
в консоль выводит найденное слово,а слова до найденного не выводит
0
dondublon
2146 / 1064 / 213
Регистрация: 17.03.2012
Сообщений: 6,417
Записей в блоге: 5
19.07.2018, 11:57 6
Посчитайте ваши параметры внимательно. Я понимаю, вы можете быть новичком в питоне, но параметры по порядку через запятую - это традиционно для всех языков.
0
19.07.2018, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2018, 11:57

Что лучше учить Python 2 или Python 3?
хочу начать учить питон но полазив в нете, частенько попадалась информация что...

Порт pyqt5 (python 3.5) программы на android - Python
Подскажите пожалуйста возможно ли программу написанную на python методами pyqt5...

Python 35 Выполнить файл из python shell
Есть файл do.py : print('start') import os import sys import re import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru