sth правильно . Ви також можете використовувати os.popen (), але там, де він доступний (Python 2.4+), як правило, кращий підпроцес.
Однак, на відміну від деяких мов, які заохочують це, зазвичай вважається поганою формою створення підпроцесу, де ви можете виконувати ту ж роботу всередині мови. Це повільніше, менш надійно і залежить від платформи. Ваш приклад буде краще, як:
foo= open('/tmp/baz').read()
ета:
baz - це каталог, і я намагаюся отримати вміст усіх файлів у цьому каталозі
? cat у каталозі отримує помилку.
Якщо вам потрібен список файлів:
import os
foo= os.listdir('/tmp/baz')
Якщо ви хочете вміст усіх файлів у каталозі, щось на зразок:
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)
або, якщо ви можете бути впевнені, що там немає каталогів, ви можете помістити його в однорядковий вкладиш:
path= '/tmp/baz'
foo= ''.join(open(os.path.join(path, child), 'rb').read() for child in os.listdir(path))