Передать несколько аргументов из C # в Python - PullRequest
0 голосов
/ 18 мая 2018

Я хочу передать несколько строковых переменных из моей программы C # в скрипт Python.

Это моя функция в C #, где я вызываю файл InsertSemantic.py и хочу передать туда 9 аргументов (nome, formVerb, contesto ecc ...)

private void insertDatabase(String nome, String formVerb, String contesto, String sinonimi, String significato, String class_gramm, String class_prag, String class_sem, String retorico)
{
    string arg = string.Format(@"C:\Users\marco\eclipse-workspace\my_project\src\InsertSemantic.py {0}", nome, formVerb, contesto, sinonimi, significato, class_gramm, class_prag, class_sem, retorico);
    try
    {
        Process p1 = new Process();
        p1.StartInfo = new ProcessStartInfo(@"C:\Python27\python.exe", arg);
        p1.StartInfo.UseShellExecute = false;
        p1.StartInfo.RedirectStandardOutput = true;
        p1.Start();
        p1.WaitForExit();  
    }
    catch (Exception ex)
    {
        Console.WriteLine("There is a problem in your Python code: " + ex.Message);
    }
    Console.WriteLine("Press enter to exit...");
    Console.ReadLine();
}

Я должен написать в InsertSemantic.py эту строку:

import sys

nome= sys.argv[1]
formVer=sys.argv[2]
contesto= sys.argv[3]
sinonimi=sys.argv[4]
significato=sys.argv[5]
gramm=sys.argv[6]
prag=sys.argv[7]
sem=sys.argv[8]
retorico=sys.argv[9]

, но с простой печатью я увидел, что я получаю только ОДИН аргумент (ном) а другой аргумент не проходит ... кто-то может мне помочь?(извините за мой английский)

1 Ответ

0 голосов
/ 18 мая 2018
string arg = string.Format(@"C:\Users\marco\eclipse-workspace\my_project\src\InsertSemantic.py {0}", nome, formVerb, contesto, sinonimi, significato, class_gramm, class_prag, class_sem, retorico);

принимает только первое значение формата с {0}.Вы должны также включить остальные значения, например.{0},{1},{2} и так далее.

string arg = string.Format(@"C:\Users\marco\eclipse-workspace\my_project\src\InsertSemantic.py {0} {1} {2} {3} {4} {5} {6} {7} {8}", nome, formVerb, contesto, sinonimi, significato, class_gramm, class_prag, class_sem, retorico);

вышеприведенное должно включать остальные параметры, добавляемые к вашей отформатированной строке.

В будущем вы можете решить эту проблему, пройдя по коду.в отладчике, и вы заметите, что когда arg назначен, передается только первый из ваших параметров, указывая, что проблема в момент назначения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...