coś jest w porządku . Możesz także użyć os.popen (), ale jeśli jest dostępny (Python 2.4+) podproces jest generalnie preferowany.
Jednak w przeciwieństwie do niektórych języków, które do tego zachęcają, generowanie podprocesu, w którym można wykonać tę samą pracę w języku, jest ogólnie uważane za złą formę. Jest wolniejszy, mniej niezawodny i zależny od platformy. Twój przykład byłby lepszy, ponieważ:
foo= open('/tmp/baz').read()
eta:
baz to katalog i próbuję pobrać zawartość wszystkich plików w tym katalogu
? cat w katalogu wyświetla mi błąd.
Jeśli chcesz listę plików:
import os
foo= os.listdir('/tmp/baz')
Jeśli chcesz zawartość wszystkich plików w katalogu, na przykład:
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)
lub, jeśli możesz być pewien, że nie ma tam katalogów, możesz umieścić go w jednym wierszu:
path= '/tmp/baz'
foo= ''.join(open(os.path.join(path, child), 'rb').read() for child in os.listdir(path))