etw ist richtig . Sie können auch os.popen () verwenden, aber wo verfügbar (Python 2.4+) ist der Unterprozess im Allgemeinen vorzuziehen.
Im Gegensatz zu einigen Sprachen, die dies fördern, wird es im Allgemeinen als schlechte Form angesehen, einen Unterprozess zu erzeugen, in dem Sie denselben Job innerhalb der Sprache ausführen können. Es ist langsamer, weniger zuverlässig und plattformabhängig. Ihr Beispiel wäre besser dran als:
foo= open('/tmp/baz').read()
eta:
baz ist ein Verzeichnis und ich versuche, den Inhalt aller Dateien in diesem Verzeichnis abzurufen
? Katze in einem Verzeichnis bekommt mir einen Fehler.
Wenn Sie eine Liste von Dateien wünschen:
import os
foo= os.listdir('/tmp/baz')
Wenn Sie den Inhalt aller Dateien in einem Verzeichnis haben möchten, gehen Sie wie folgt vor:
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)
Wenn Sie sicher sein können, dass dort keine Verzeichnisse vorhanden sind, können Sie es in einen Einzeiler einfügen:
path= '/tmp/baz'
foo= ''.join(open(os.path.join(path, child), 'rb').read() for child in os.listdir(path))