Navigation dans les répertoires à l'aide de sous-processus
Lors de l'exécution de scripts dans des sous-répertoires à l'aide de sous-processus, il est crucial de comprendre la distinction entre les commandes shell internes et les programmes externes.
Dans votre cas, vous essayez d'appeler la commande cd du shell en utilisant subprocess.call(['cd ..']). Cependant, cd est une commande interne qui ne peut pas être exécutée directement en tant que programme. Pour exécuter une commande interne, vous devez utiliser l'argument shell=True :
<code class="python">subprocess.call('cd ..', shell=True)</code>
Cependant, spécifier shell=True est généralement déconseillé car cela peut compromettre la sécurité. Au lieu de cela, vous pouvez utiliser le paramètre cwd pour modifier le répertoire de travail avant d'exécuter un sous-processus :
<code class="python">subprocess.Popen("ls", cwd="/")</code>
Cette approche garantit que le sous-processus est exécuté dans le répertoire de travail spécifié sans dépendre du shell, offrant ainsi une sécurité plus élevée. et environnement prévisible pour votre script.
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!