bufsize debe ser un error de entero al grepping un mensaje

Me estoy encontrando con el siguiente error al intentar grep para un mensaje que consiste en líneas de múltiples líneas en un registro … ¿alguien puede proporcionar entradas sobre cómo superar este error?

CÓDIGO:-

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

ERROR:-

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

La clase subprocess.Popen espera una lista de argumentos como esta:

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

Así que lo estás pasando:

  • args = git
  • bufsize = log

De ahí el error ( bufsize espera un valor entero). El vector de comando debe ser una lista, como esta:

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