sth is right. También puede usar os.popen(), pero donde esté disponible (Python 2.4+) el subproceso generalmente es preferible.
Sin embargo, a diferencia de algunos idiomas que lo fomentan, generalmente se considera una mala forma generar un subproceso donde puede hacer el mismo trabajo dentro del idioma. Es más lento, menos confiable y depende de la plataforma. Su ejemplo sería mejor como:
foo= open('/tmp/baz').read()
eta:
Baz es un directorio y estoy tratando de conseguir el contenido de todos los archivos de 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 que el contenido de todos los archivos en un directorio, algo así 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 usted puede estar seguro de que hay no hay directorios allí, podría caber en un trazador de líneas:
path= '/tmp/baz'
foo= ''.join(open(os.path.join(path, child), 'rb').read() for child in os.listdir(path))
http://stackoverflow.com/questions/2924310/whats-a-good-equivalent-to-pythons-subprocess-check-call-that-returns-the-conte – jfs