2016-03-16 323 views
0

我特林運行從C#運行Python腳本

,並從外殼被打開,但該腳本不運行

我知道它,因爲它應該創建一個文件python腳本

我該如何運行該過程?

Process p = new Process(); // create process (i.e., the python program 
p.StartInfo.FileName = @"C:\Python27\python.exe"; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.UseShellExecute = false; // make sure we can read the output from stdout 
p.StartInfo.Arguments = @"T:\barakr\360_3G_daily_report\2016.03.15\0615319253\powerlink_logs_mrg.py"; //PanelsDirectory[j] + "\\powerlink_logs_mrg.py"; // start the python program with two parameters       
p.Start(); 

回答

0

把你的字符串中的反斜槓,你需要逃避它是這樣的:「\」

所以,你的代碼將是:

Process p = new Process(); // create process (i.e., the python program 
p.StartInfo.FileName = @"C:\\Python27\\python.exe"; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.UseShellExecute = false; // make sure we can read the output from stdout 
p.StartInfo.Arguments = @"T:\\barakr\\360_3G_daily_report\\2016.03.15\\0615319253\\powerlink_logs_mrg.py"; //PanelsDirectory[j] + "\\powerlink_logs_mrg.py"; // start the python program with two parameters       
p.Start(); 

有一個愉快的一天,希望我幫你;)

編輯:當字符串出現@時,顯然不需要雙反斜槓。嘗試直接使用您的操作系統測試您的位置。

0

也許你需要把兩個 '\' 在每個 '\' 在這一行:

p.StartInfo.Arguments = @"T:\barakr\360_3G_daily_report\2016.03.15\0615319253\\powerlink_logs_mrg.py"; //PanelsDirectory[j] + "\\powerlink_logs_mrg.py"; // start the python program with two parameters 

入住此網頁:https://bytes.com/topic/python/insights/950783-two-ways-run-python-programs-c

編輯:

嘗試這樣:

p.StartInfo.Arguments = @"T:\\barakr\\360_3G_daily_report\\2016.03.15\\0615319253\\powerlink_logs_mrg.py"; //PanelsDirectory[j] + "\\powerlink_logs_mrg.py"; // start the python program with two parameters 

我希望這將幫助你:)

+0

如果在字符串之前使用'@',似乎並不需要加雙'/',對不起。 – Onemikoscar

0

我認爲你有一個雙反斜線應該在此行的最後一單一個:

p.StartInfo.Arguments = @"T:\barakr\360_3G_daily_report\2016.03.15\0615319253\\powerlink_logs_mrg.py"; 
0

你的代碼看起來我的權利。雙斜槓不應該是必須的,因爲字符串常量以@開頭。我建議你嘗試的是將exe路徑和參數路徑複製並粘貼到shell窗口中,然後從shell窗口運行exe以確保在這些路徑中沒有錯字。

+0

可以請你給一個代碼示例 –

+0

它應該是1肉。更改。相同的結果。 –