Este código genera "AttributeError: objeto 'Popen' no tiene atributo 'fileno'" cuando se ejecuta con Python 2.5.1Python subproceso "objeto no tiene atributo 'fileno'" error
Código:
def get_blame(filename):
proc = []
proc.append(Popen(['svn', 'blame', shellquote(filename)], stdout=PIPE))
proc.append(Popen(['tr', '-s', r"'\040'"], stdin=proc[-1]), stdout=PIPE)
proc.append(Popen(['tr', r"'\040'", r"';'"], stdin=proc[-1]), stdout=PIPE)
proc.append(Popen(['cut', r"-d", r"\;", '-f', '3'], stdin=proc[-1]), stdout=PIPE)
return proc[-1].stdout.read()
Pila:
function walk_folder in blame.py at line 55
print_file(os.path.join(os.getcwd(), filename), path)
function print_file in blame.py at line 34
users = get_blame(filename)
function get_blame in blame.py at line 20
proc.append(Popen(['tr', '-s', r"'\040'"], stdin=proc[-1]), stdout=PIPE)
function __init__ in subprocess.py at line 533
(p2cread, p2cwrite,
function _get_handles in subprocess.py at line 830
p2cread = stdin.fileno()
Este código debe trabajar la pitón documentos describen this usage.
Cierre esto como "demasiado localizada" es ridícula como * I * pareció útil, años más tarde. Esta es la naturaleza de los problemas de programación: siempre son problemas de nicho aplicables a una base de usuarios limitada. Pero SON ÚTILES ... ASÍ ES LO QUE ME ENGAÑA EN ESTE DÍA, y es por eso que ya no lo uso a menudo. – Dan