Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Skrip Python dari C# Tanpa 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!