qqch est correct . Vous pouvez également utiliser os.popen(), mais lorsqu'il est disponible (Python 2.4+), le sous-processus est généralement préférable.
Cependant, contrairement à certains langages qui l'encouragent, il est généralement considéré comme une mauvaise pratique de créer un sous-processus dans lequel vous pouvez effectuer le même travail à l'intérieur du langage. C'est plus lent, moins fiable et dépendant de la plate-forme. Votre exemple serait plus approprié en tant que :
foo= open('/tmp/baz').read()
eta :
baz est un répertoire et j'essaie d'obtenir le contenu de tous les fichiers de ce répertoire.
? cat sur un répertoire me donne une erreur.
Si vous voulez une liste de fichiers :
import os
foo= os.listdir('/tmp/baz')
Si vous voulez le contenu de tous les fichiers d'un répertoire, quelque chose comme :
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)
ou, si vous pouvez être sûr qu'il n'y a pas de répertoires là-dedans, vous pouvez le faire tenir en une seule ligne :
path= '/tmp/baz'
foo= ''.join(open(os.path.join(path, child), 'rb').read() for child in os.listdir(path))
0 votes
stackoverflow.com/questions/2924310/