Le code ci-dessous fonctionne lorsqu'il est tapé manuellement cependant lorsque je lance le programme.py rien ne s'imprime. Mon but ultime est de récupérer ces données à partir du PC de l'utilisateur pour créer un moyen facile de recréer des raccourcis .... Mes utilisateurs en quelque sorte à perdre lolPython Capture réponse de powershell
import smtplib, os, subprocess, sys
from string import ascii_uppercase
from cStringIO import StringIO
data = os.popen(r"dir %userprofile%\desktop\*.lnk* /s/b").read()
file = open("testitem.txt", "w")
file.write(data)
file.close()
my_data = dict(zip(ascii_uppercase,open("testitem.txt")))
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
for key, value in my_data.iteritems():
subprocess.Popen([r"powershell.exe", "$sh = New-Object -COM WScript.Shell" + "\n" + "$sh.CreateShortcut(\"%s\").TargetPath" % my_data[key].replace("\n", "")], stdout=subprocess.PIPE).communicate()[0]
sys.stdout = old_stdout
shared = mystdout.getvalue()
print shared
Le code me semble correct ... Je pense que la raison pourrait être quelque part ailleurs. Vous pouvez essayer 'sys .__ stdout __. Write (partagé)' à la place de 'print shared' à la fin. –
Merci pour la réponse. J'ai essayé cependant toujours de ne rien obtenir. Je pense que rien n'est capturé en premier lieu. C'est étrange mais après avoir essayé de nombreuses choses l'impression est vide, pas d'erreurs juste vides. –