2016-06-20 4 views
1

P4Pythonでgrep()コマンドを使用する方法を知っている人はいますか?
私はPerforceで動作するスクリプトを開発しており、は複数のファイル内の特定のテキストを簡単に検索しますgrepコマンドでp4pythonを使用する

p4 grep -n -B 1 -e text_searched %DのようなP4コマンドを使用してPerforce>ツール>カスタムツールを管理するツールを既に作成しようとしましたが、複数のファイルで同じ検索を実行したいので機能しません。

私はP4 grep documentationP4Python APIs for Scriptingを検索しましたが、これを行う方法が見つかりませんでした。

私はいくつかのコマンドを使用して、同じように、run_commandNameを使用できることに気付きました:

from P4 import sys, P4, P4Exception 
    p4 = P4() 
    p4.run_integrated(fileName) 

そして、それは本当によく働きます!しかし、私は使用することはできませんP4().run_grep() =/

だから、私がやっていることはP4Pythonスクリプトを作ることです。

引数:C:\ Users \ユーザーhmunguba \プロジェクト\ P4 \スクリプト\ searchp4pythonscript.py $ U $ P $ C%のD

そして、私のコードの何かである私は、このようなカスタムダイヤルが行わPerfoceオン like:

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() 

しかし、これから得られる答えは、常に空白の画面です。誰もそれで私を助けることができますか?

答えて

0

p4.run()STDOUTに印刷するとは思わない。 APIコールです。戻り値(構造化データ)を取得して処理します。

私はAPIの慣例により、あなたはp4.run_grep(ARGS)と同様p4.run("grep", ARGS)を使用することができるはずと信じています。それが動作していない場合はおそらくバグです。あなたのスクリプトがうまく動くようになった後、これが本当にそうであるかどうか再確認してください。

関連する問題