Lors de l'exécution de commandes shell en Python à l'aide du module de sous-processus, il est essentiel de savoir comment rediriger la sortie. Un scénario courant consiste à rediriger la sortie standard d’une commande vers un fichier. Cet article répond à ce besoin en explorant l'approche de Python pour réaliser la redirection de sortie.
Dans l'extrait de code Python fourni, l'utilisateur tente d'utiliser subprocess.call pour rediriger la sortie de la commande cat vers un fichier en divisant la commande. en arguments en utilisant shlex. Cependant, la sortie est toujours affichée dans la console.
Pour rediriger correctement la sortie dans Python 3.5 et versions ultérieures, l'argument stdout de subprocess.run peut être utilisé. Cet argument accepte un descripteur de fichier ouvert comme valeur, vers lequel la sortie sera dirigée. Voici un exemple :
# Use a list of args instead of a string input_files = ['file1', 'file2', 'file3'] my_cmd = ['cat'] + input_files with open('myfile', "w") as outfile: subprocess.run(my_cmd, stdout=outfile)
Dans ce code, la commande à exécuter est divisée en une liste d'arguments et la sortie est redirigée vers un fichier nommé « monfichier ». L'instruction with garantit que le fichier est correctement ouvert, écrit et fermé.
Il convient de noter que l'utilisation d'une commande externe comme cat à cette fin n'est pas nécessaire. Python possède des fonctions intégrées pour lire et écrire des fichiers, qui peuvent être utilisées directement :
with open('myfile', "w") as outfile: outfile.write(open('file1').read()) outfile.write(open('file2').read()) outfile.write(open('file3').read())
En comprenant comment rediriger correctement la sortie avec un sous-processus ou en utilisant les capacités de gestion de fichiers de Python, vous pouvez gérer efficacement le flux de informations dans vos scripts Python.
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!