2017-06-28 1 views
0

Je me demande si quelqu'un peut me diriger dans la bonne direction. J'essaie d'écrire une application VB qui exécute un simple programme python d'environ 10 lignes, puis est censé revenir à VB et attendre le fichier Excel que xyz.py a créé pour en lire une cellule.La commande shell n'exécute pas mon fichier .py à partir de vb.net

Problème Je n'arrive pas à exécuter le fichier.

J'ai essayé

Shell("C:\Users\Clive\AppData\Local\Programs\Python\Python36\python.exe C:\Users\Clive\Documents\xyz.py") 

aussi:

System.Diagnostics.Process.Start("C:\Users\Clive\Documents\xyz.py") 

aucun de ces travaux. avant de poursuivre le double-clic xyz.py me donne un résultat correct ainsi que de courir à partir de la ligne de commande. Ai-je manqué une référence ou quelque chose?

merci d'avance!

Clive

Répondre

0

Le code que vous utilisez devrait fonctionner correctement. Mais cela a fonctionné pour moi

Shell("py C:\fakepath\xyz.py") 

Si py est pas dans votre environnement PATH vous pouvez le trouver dans C: \ Windows \ py.exe

0

Il fonctionne pour moi. premier script un python3 pour générer un fichier csv:

import csv 
with open('order.csv', 'w', newline='') as csvfile: 
    writer = csv.writer(csvfile, delimiter=',') 
    writer.writerow(['name', 'amount']) 
    writer.writerow(['ham', '3']) 
    writer.writerow(['egg', '2']) 
exit(1) 

Ensuite, une application vb pour appeler le script python et lire le fichier csv généré:

Imports System.IO 
Module App 
    Sub Main() 
     Process.Start("C:\Projects\PythonVbInterop\PythonVbInterop\script.py").WaitForExit() 
     For Each line In File.ReadAllLines("Order.csv") 
      Console.WriteLine(line) 
     Next 
    End Sub 
End Module