>source

이것이 기존의 질문일지도 모르지만 미안하지만 실행하기가 어렵습니다.

사용자에게 숫자를 입력하고 2를 곱하도록 요청하는 간단한 파이썬 코드가 있습니다.

userInput = int({sys.argv[1]})
pythonOutput = userInput * 2
print("The number passed is: ", pythonOutput)

내가 원하는 것은 사용자가 C # Winforms에 숫자를 입력 한 다음 결과를 C #으로 표시하는 것입니다. 따라서 필요한 수파이썬 코드의 userInputC #에서 가져온 다음 Python 코드의 출력이 C #으로 표시됩니다.

이것은 현재 내 C # 코드입니다.

       string pythonInterpreter = @"C:\Anaconda3\python.exe";
        var start = new ProcessStartInfo
        {
            FileName = pythonInterpreter,
            Arguments = string.Format($"\"{@"C:\Users\chesk\Desktop\Work Files\Project\Thermal Camera\PythonForC#\SimpleInputOutput.py"}\" {txtUserInput.Text}"),
            UseShellExecute = false,
            RedirectStandardOutput = true,
            RedirectStandardInput = true,
            RedirectStandardError = true,
            CreateNoWindow = true,
        };
        var result = "0";
        var error = "";
        using (Process process = Process.Start(start))
        {
            result = process.StandardOutput.ReadToEnd();
            error = process.StandardError.ReadToEnd();
            lblPythonOutput.Text = result;
            lblPythonOutputError.Text = error;
        }

편집하다:

파이썬과 C # 코드를 모두 업데이트했고 이제 C #을 사용하여 파이썬에서 값을 전달할 수 있지만 정수를 보낼 때이 오류가 나타납니다.

Traceback (most recent call last): File"C:\Users\chesk\Desktop\Work Files\Project\Thermal Camera\PythonForC#\SimpleInputOutput.py", line 8, in userInput = int({sys.argv[1]}) TypeError: int() argument must be a string, a bytes-like object or a number, not 'set'

  • 답변 # 1

    C # 코드는 나쁘게 보이지 않습니다. userinput을 요구하기 때문에 문제가 파이썬 코드에 있다고 생각합니다. 하지만 이미 숫자를 파이썬 스크립트에 명령 줄 인수로 전달하고 있으므로 사용자 입력을 요청할 필요가 없습니다. 대신 Python 스크립트에 전달 된 인수를 사용해야합니다.

    다음은 그 예입니다.

    import sys
    print(f"The number passed by c# was: {sys.argv[1]}")
    
    

    자세한 내용은 Python 명령 줄 인수에 대한이 자습서를 확인할 수 있습니다.

    편집 :

    sys.argv [0]을 sys.argv [1]로 변경했습니다. 감사합니다. Roy Cohen

    f- 문자열로 변경-감사합니다 Roy Cohen

관련 자료

  • 이전 firebase - 인증 된 사용자 만 유효하지 않은 호출에 대한 비용을 청구하지 않고 호출 가능한 함수를 사용하도록 허용 할 수 있습니까?
  • 다음 regex - PHP 변수 내에서 특정 텍스트를 찾은 다음 양쪽 문자 사이의 모든 텍스트를 바꾸는 방법