Le code ci-dessous n'est pas à jour dans Python 3.0 en étant remplacé par Subprocess.getstaTusAutTUTUT () code>.
>test.py
1
'{' is not recognized as an internal or external command,
operable program or batch file.
3 Réponses :
Je ne considérerais pas vraiment ce multiplatform em>, mais vous pouvez utiliser voici un Remplacement Drop-in pour subprocess.popen code>:
GetStaTusOutput Code>: P>
import os
import os.path
for rel_name in os.listdir(os.curdir):
abs_name = os.path.join(os.curdir, rel_name)
if os.path.isdir(abs_name):
print('DIR: ' + rel_name)
elif os.path.isfile(abs_name):
print('FILE: ' + rel_name)
else:
print('UNK? ' + rel_name)
Merci. Je pense que vous n'avez pas utilisé l'option de wiki communautaire car je n'ai pas pu mettre à jour votre réponse. J'ai ajouté un autre à la place.
Il est marqué comme un wiki communautaire, mais je pense que votre réputation doit dépasser 100 avant de pouvoir modifier;)
OOH, dans ce cas, pouvez-vous mettre à jour votre solution avec le code que j'ai publié sur la dernière réponse afin que je puisse accepter la réponse et le nettoyage de la question? Merci.
GetStatusOutput Docs disent qu'il exécute la commande comme: p>
{cmd} 2> & 1 p>
qui ne fonctionne évidemment pas avec cmd.exe (le 2> & 1 fonctionne bien si vous en avez besoin de). P>
Vous pouvez utiliser Popen comme ci-dessus, mais incluez également le paramètre 'starr = subprocess.stdout' pour obtenir le même comportement que GetStatusOutput. P>
Mes tests sur Windows avaient un code de retour sur None, ce qui n'est pas idéal si vous comptez sur la valeur de retour. P>
Ce serait la mise en œuvre multiplateform pour GetStatuTusOutput ():
def getstatusoutput(cmd): """Return (status, output) of executing cmd in a shell.""" """This new implementation should work on all platforms.""" import subprocess pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, universal_newlines=True) output = "".join(pipe.stdout.readlines()) sts = pipe.returncode if sts is None: sts = 0 return sts, output
Merci pour la balle d'argent.
Fonctionne pour moi sur Windows Python 2.7 - Merci beaucoup pour ce chef-d'œuvre de code