Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Skrip Python dari C# Tanpa IronPython?

Bagaimanakah Saya Boleh Melaksanakan Skrip Python dari C# Tanpa IronPython?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-15 16:39:11343semak imbas

How Can I Execute Python Scripts from C# Without IronPython?

Memanggil Skrip Python daripada C#

Ia adalah mungkin untuk melaksanakan skrip Python daripada C# tanpa menggunakan perpustakaan luaran seperti IronPython. Begini cara anda boleh mendekati ini:

Pertimbangkan skrip Python berikut (code.py):

if __name__ == '__main__':
    with open(sys.argv[1], 'r') as f:
        s = f.read()
    print(s)

Untuk menjalankan skrip ini dalam C#, laraskan kaedah run_cmd anda seperti berikut:

private void run_cmd(string cmd, string args)
{
    ProcessStartInfo start = new ProcessStartInfo();

    // Specify the complete path to python.exe
    start.FileName = "my/full/path/to/python.exe";

    // Build the argument string with the script and file paths
    start.Arguments = string.Format("{0} {1}", cmd, args);

    // Disable using the shell to gain more control
    start.UseShellExecute = false;

    // Enable standard output redirection to capture the script's output
    start.RedirectStandardOutput = true;

    using (Process process = Process.Start(start))
    {
        using (StreamReader reader = process.StandardOutput)
        {
            string result = reader.ReadToEnd();
            Console.Write(result);
        }
    }
}

Dengan menetapkan UseShellExecute kepada false, anda mendapat kawalan ke atas arahan dan hujah yang dihantar kepada Python. Anda mesti menyediakan laluan penuh kepada python.exe sebagai FileName dan membina rentetan Argumen untuk memasukkan kedua-dua laluan skrip (cmd) dan laluan fail untuk dibaca (args).

Perhatikan bahawa memanggil skrip Python secara berterusan daripada C# mungkin menjejaskan prestasi disebabkan oleh overhed mencipta proses baharu setiap kali. Jika skrip anda mengambil masa jalan yang ketara, pertimbangkan untuk mengoptimumkan pendekatan anda atau menggunakan mekanisme komunikasi antara proses yang lebih sesuai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Skrip Python dari C# Tanpa IronPython?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn