Redirection de la sortie avec un sous-processus en Python
En Python, le module de sous-processus permet l'invocation de commandes externes. Lors de l'exécution de commandes, il est souvent souhaitable de rediriger la sortie vers un fichier.
Considérez la commande de ligne de commande suivante :
cat file1 file2 file3 > myfile
Cette commande concatène les fichiers file1, file2 et file3 et redirige le sortie dans le fichier myfile. Pour obtenir une fonctionnalité similaire en Python, vous pouvez d'abord tenter ce qui suit :
import subprocess, shlex my_cmd = 'cat file1 file2 file3 > myfile' args = shlex.split(my_cmd) subprocess.call(args) # Spits output in the window from which Python was called
Cependant, cette approche ne redirige pas la sortie vers un fichier. Au lieu de cela, il l'imprime dans la fenêtre dans laquelle le programme Python a été invoqué.
Solution Python 3.5
Pour rediriger correctement la sortie, fournissez un descripteur de fichier ouvert pour la sortie standard. argument dans subprocess.run :
input_files = ['file1', 'file2', 'file3'] my_cmd = ['cat'] + input_files with open('myfile', "w") as outfile: subprocess.run(my_cmd, stdout=outfile)
Cette solution redirige efficacement la sortie vers le fichier myfile sans avoir besoin d'une commande externe comme chat.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!