2010-07-15 67 views
7

我剛剛完成了用C#編寫了一個大小適中的疾病傳輸模型。不過,我對.NET相當陌生,並且不確定如何繼續。目前我只需雙擊.exe文件,模型就從文本文件導入配置設置,完成它的工作,並將結果輸出到文本文件中。從python腳本運行C#應用程序

我想下一步要做的就是寫一個Python腳本來做到以下幾點:

  • 運行仿真N次(N> 1000)
  • 在每次運行後重命名輸出文件和存儲(即./output.txt - > ./acc/outputN.txt)
  • 骨料,解析和分析的輸出在一些清潔格式
  • 輸出的結果(可能EXCEL)

迄今爲止,我的大部分編程經驗都是在Linux上的C/C++中進行的。對於最後兩項我相當有信心;然而,我不知道如何進行前兩個。這裏有一些具體的問題我想建議:

  • 從python腳本運行我的C#.exe最簡單/最好的方法是什麼?
  • 有沒有人有建議在Windows系統上Python的文件系統操作的最佳方式?

謝謝!

+0

只是好奇,但爲什麼在Python休息(而不是在C#)? – 2010-07-15 21:10:08

+0

如果您正在尋找單元測試,請嘗試NUnit:http://www.nunit.org/ – Bobby 2010-07-15 21:11:42

+0

@亨克:我想避免對模型本身進行更改。因此,做我想做的事情需要編寫一個新的應用程序/腳本。解決方案的性能並不重要,但編寫代碼的時間是。我認爲腳本語言對於腳本類問題會更​​好。另外,我更喜歡python。 :) – Mandelbrot 2010-07-15 21:21:39

回答

11

對於Python的2.6+你應該使用subprocess模塊:(Docs

import subprocess 

for v in range(1000): 
    cmdLine = r"c:\path\to\my\app.exe" 
    subprocess.Popen(subprocess) 
    subprocess.Popen(r"move output.txt ./acc/output-%d.txt" % (v)) 
+0

Ah-ha某人真的知道python,而不只是看着像我這樣的文檔... touche,這應該是正確的。 – kersny 2010-07-15 21:15:21

+0

完美,非常感謝! – Mandelbrot 2010-07-15 21:17:29

+1

一個改進將使用'os.rename'而不是去'move'。 – 2010-07-16 01:50:06

3

你的問題的答案可以在Python標準庫的'os'中找到。可以找到用於執行各種操作的文檔,例如處理文件和啓動過程,文檔號爲here

進程管理(運行您的C#程序)可以找到here,文件操作是here

編輯:其實,而不是上述過程鏈接,你應該使用subprocess module

+0

啊,正是我需要的。我不敢相信我之前沒有看到。非常感謝你! – Mandelbrot 2010-07-15 21:07:37