คำถามประเภทนี้มีการถามมาก่อนในระดับที่แตกต่างกัน แต่ฉันรู้สึกว่ายังไม่ได้รับคำตอบในแบบกระชับและดังนั้นฉันจึงถามอีกครั้ง
ฉันต้องการเรียกใช้สคริปต์ใน Python สมมติว่านี่คือ:
if __name__ == '__main__':
with open(sys.argv[1], 'r') as f:
s = f.read()
print s
ซึ่งได้รับตำแหน่งไฟล์อ่านแล้วพิมพ์เนื้อหา ไม่ซับซ้อน
โอเคฉันจะรันใน C # ได้อย่างไร
นี่คือสิ่งที่ฉันมีตอนนี้:
private void run_cmd(string cmd, string args)
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = cmd;
start.Arguments = args;
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Console.Write(result);
}
}
}
เมื่อฉันผ่านcode.py
ตำแหน่งเป็นcmd
และfilename
ตำแหน่งเนื่องจากargs
ไม่ทำงาน ฉันบอกว่าฉันควรจะผ่านpython.exe
เป็นcmd
แล้วเป็นcode.py filename
args
ฉันได้รับการมองหาในขณะนี้และสามารถหาคนแนะนำให้ใช้ IronPython หรือเช่นนั้น แต่จะต้องมีวิธีเรียกสคริปต์ Python จาก C #
ชี้แจงบางส่วน:
ฉันต้องการเรียกใช้จาก C # ฉันต้องจับเอาท์พุทและฉันไม่สามารถใช้ IronPython หรืออย่างอื่นได้ ไม่ว่าแฮ็คของคุณจะเป็นอะไร
PS: รหัส Python ที่แท้จริงที่ฉันใช้อยู่นั้นซับซ้อนกว่านี้มากและจะส่งคืนผลลัพธ์ที่ฉันต้องการใน C # และรหัส C # จะเรียกรหัส Python อย่างต่อเนื่อง
หลอกว่านี่คือรหัสของฉัน:
private void get_vals()
{
for (int i = 0; i < 100; i++)
{
run_cmd("code.py", i);
}
}