sth is right. Вы также можете использовать os.popen(), но там, где доступно (подпроцессом Python 2.4+), как правило, предпочтительнее.
Однако, в отличие от некоторых языков, которые его поощряют, обычно считается неправильной формой для создания подпроцесса, где вы можете выполнять ту же работу внутри языка. Он медленнее, менее надежный и зависящий от платформы. Ваш пример будет лучше, как:
foo= open('/tmp/baz').read()
ет:
БАЗ каталог, и я пытаюсь получить содержимое всех файлов в этом каталоге
? 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))
http://stackoverflow.com/questions/2924310/whats-a-good-equivalent-to-pythons-subprocess-check-call-that-returns-the-conte – jfs