algo tiene razón . También puede usar os.popen (), pero cuando esté disponible (Python 2.4+), generalmente es preferible el subproceso.
Sin embargo, a diferencia de algunos lenguajes que lo fomentan, generalmente se considera de mala forma generar un subproceso en el que se puede hacer el mismo trabajo dentro del lenguaje. Es más lento, menos confiable y depende de la plataforma. Su ejemplo estaría mejor si:
foo= open('/tmp/baz').read()
eta:
baz es un directorio y estoy tratando de obtener el contenido de todos los archivos en ese directorio
? cat en un directorio me da un error.
Si desea una lista de archivos:
import os
foo= os.listdir('/tmp/baz')
Si desea el contenido de todos los archivos en un directorio, algo como:
contents= []
for leaf in os.listdir('/tmp/baz'):
path= os.path.join('/tmp/baz', leaf)
if os.path.isfile(path):
contents.append(open(path, 'rb').read())
foo= ''.join(contents)
o, si puede estar seguro de que no hay directorios allí, puede colocarlo en una sola línea:
path= '/tmp/baz'
foo= ''.join(open(os.path.join(path, child), 'rb').read() for child in os.listdir(path))