2013-07-24 8 views
6

Si verifica un errore successivo durante il tentativo di grep per un messaggio costituito da linee multipe in un log ... qualcuno può fornire input su come superare questo errore?bufsize deve essere un errore intero durante l'apertura di un messaggio

CODICE: -

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

ERRORE: -

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

risposta

14

La classe subprocess.Popen si aspetta una lista di argomenti come questo:

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

Quindi stai passando:

  • args = git
  • bufsize = log

qui l'errore (bufsize prevede un valore intero). Il vettore di comando deve essere un elenco, come questo:

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

grazie, anche io voglio grep per ciò che è in gerrit_commitmsg ma non la stringa gerrit_commitmsg stesso, qualche consiglio su come possiamo farlo? – user1934146

+0

Questa è una domanda diversa, e la cosa migliore è probabilmente pubblicare una nuova domanda qui su SO. – larsks

Problemi correlati