इस तरह का प्रश्न अलग-अलग डिग्री में पहले पूछा जा चुका है, लेकिन मुझे लगता है कि इसका उत्तर संक्षिप्त तरीके से नहीं दिया गया है और इसलिए मैं इसे फिर से पूछता हूं।
मैं पायथन में एक स्क्रिप्ट चलाना चाहता हूं। मान लीजिए कि यह है:
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
।
मैं अभी कुछ समय के लिए देख रहा हूं और केवल आयरनपाइथन या इस तरह के लोगों को सुझाव दे सकता हूं। लेकिन C # से पायथन स्क्रिप्ट को कॉल करने का एक तरीका होना चाहिए।
कुछ स्पष्टीकरण:
मुझे इसे C # से चलाने की आवश्यकता है, मुझे आउटपुट कैप्चर करने की आवश्यकता है, और मैं IronPython या कुछ और का उपयोग नहीं कर सकता। आपके पास जो भी हैक होगा वह ठीक रहेगा।
पुनश्च: वास्तविक पायथन कोड जो मैं चला रहा हूं, वह इससे कहीं अधिक जटिल है, और यह आउटपुट देता है जिसकी मुझे C # में आवश्यकता है, और C # कोड लगातार पायथन कोड को कॉल करेगा।
बहाना यह मेरा कोड है:
private void get_vals()
{
for (int i = 0; i < 100; i++)
{
run_cmd("code.py", i);
}
}