Estoy usando Python para automatizar una confirmación SVN, y quiero escribir la salida del comando SVN en un archivo de registro. El código que tengo puede hacer que se ejecute SVN, pero el problema es que en una confirmación exitosa, la invocación subprocess
no devuelve ningún resultado para mi registro.Al usar el subproceso.Popen(), stderr y stdout no tienen salida
Cuando ejecuto SVN manualmente, en comparación, obtengo una salida que muestra el progreso del comando y muestra qué archivos están siendo comprometidos. Eso es lo que quiero en mi archivo de registro. ¿SVN está enviando esos datos a un buffer que stdout o stderr? ¿Cómo puedo capturar esos datos para mi registro?
Aquí está el código que estoy usando:
cmd = "svn commit --non-interactive --no-auth-cache -m 'Automatic commit' ./"
process = subprocess.Popen(cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
result = process.wait()
# Output
out = process.stdout.read()
err = process.stderr.read()
Cuando ejecuto este código y la confirmación se realiza correctamente, las variables out
y err
están vacíos.
¿Cómo se envían los datos de acceso para hacer eso? Estoy intentando lo mismo y no pude encontrar la manera de enviar un nombre de usuario y contraseña para el mismo –