Кто-нибудь знает, как использовать команду grep()
в P4Python?
Я разрабатываю сценарий, который работает с Perforce и упрощает поиск определенных текстов в нескольких файлах.
Я уже пытался создать инструмент в Perforce > Инструменты > Управление пользовательскими инструментами с помощью команд P4, таких как p4 grep -n -B 1 -e text_searched %D
, но поскольку я хочу выполнить один и тот же поиск в нескольких файлах, это не сработает.
Я искал в документацию P4 grep и API P4Python для сценариев, но я не смог найти, как сделай это.
Я заметил, что некоторые команды можно использовать run_commandName
, например:
from P4 import sys, P4, P4Exception
p4 = P4()
p4.run_integrated(fileName)
И это работает очень хорошо! Но я не могу использовать P4().run_grep()
=/
Итак, я пытаюсь сделать скрипт P4Python. В Perfoce я сделал пользовательский сбор следующим образом:
Аргументы: C:\Users\hmunguba\Projects\P4\scripts\searchp4pythonscript.py $u $p $c %D
И мой код выглядит примерно так:
from P4 import sys, P4, P4Exception
p4 = P4()
p4.user = sys.argv[1]
p4.port = sys.argv[2]
p4.client = sys.argv[3]
p4.connect()
FILE = str(sys.argv[4])
SEARCH_TEXT = sys.argv[5]
try:
p4.run("grep", "-e ", SEARCH_TEXT, FILE)
except P4Exception:
for e in p4.errors:
print e
finally:
p4.disconnect()
Но ответ, который я получаю от этого, всегда пустой экран. Может ли кто-нибудь помочь мне с этим?