2013-07-24 14 views
6

Występuje następujący błąd podczas próby grep dla wiadomości składającej się z wielu wierszy w dzienniku ... Czy ktoś może dostarczyć dane wejściowe, w jaki sposób przezwyciężyć ten błąd?bufsize musi być całkowitym błędem podczas czekania na komunikat

KOD: -

print gerrit_commitmsg 
    gerritlog = Popen('git','log','--grep','gerrit_commitmsg', stdout=PIPE, stderr=PIPE) 
    print gerritlog 

BŁĄD: -

Commit message:- 

Build system changes 

Build system changes to include packages in the build 

Change-Id: I697558f01ae367d2baacdf2c7fcf1a03753edacd 

Traceback (most recent call last): 
    File "gerrits_in_workspace.py", line 87, in <module> 
    main() 
    File "gerrits_in_workspace.py", line 77, in main 
    grep_commitmsg(gerrit_commitmsg) 
    File "gerrits_in_workspace.py", line 48, in grep_commitmsg 
    gerritlog = Popen('git','log','--grep','gerrit_commitmsg', stdout=PIPE, stderr=PIPE) 
    File "/usr/lib/python2.7/subprocess.py", line 629, in __init__ 
    raise TypeError("bufsize must be an integer") 

Odpowiedz

14

Klasa subprocess.Popen spodziewa się lista argumentów tak:

Popen(args, bufsize=0, ...) 

Więc przepuszczenie go:

  • args = git
  • bufsize = log

Stąd błędu (bufsize oczekuje liczbę całkowitą). Wektor komenda musi być lista, podobnie jak to:

gerritlog = Popen(['git','log','--grep','gerrit_commitmsg'], stdout=PIPE, stderr=PIPE) 
+0

dzięki, też chcę grep za to, co jest w gerrit_commitmsg ale nie łańcuch gerrit_commitmsg sobie, jakieś wskazówki, w jaki sposób możemy to zrobić? – user1934146

+0

To jest inne pytanie, a najlepiej jest postawić nowe pytanie na SO. – larsks

Powiązane problemy