Changement du répertoire actuel avec un sous-processus
Lors de l'exécution d'un script dans un sous-répertoire ou un super-répertoire, il est nécessaire d'abord d'accéder au répertoire souhaité. Cependant, l'utilisation d'un sous-processus pour modifier le répertoire de travail peut rencontrer des erreurs. Dans cet article, nous explorerons le problème et proposerons une solution.
Le problème survient lors de la tentative d'exécution de la commande « cd » via un sous-processus, comme le montre l'exemple de code fourni. Le sous-processus tente d'appeler « cd » en tant que programme, alors qu'en réalité, il s'agit d'une commande interne du shell qui doit être appelée « cd
Pour éviter cette erreur, utilisez « subprocess.call ». ('cd ..', shell=True)' pour spécifier que la commande doit être exécutée par le shell. Cependant, cette approche n'est pas nécessaire car la modification du répertoire actuel dans un processus enfant n'affectera pas le répertoire du processus parent.
Au lieu de cela, il existe d'autres méthodes pour obtenir la fonctionnalité souhaitée :
<code class="python">os.chdir("/") subprocess.Popen("ls") os.chdir(wd)</code>
<code class="python">subprocess.Popen("ls", cwd="/")</code>
En employant ces méthodes, vous pouvez contrôler efficacement le répertoire actuel lors de l'exécution de scripts dans différents répertoires à l'aide du sous-processus.
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!