2010-07-15 61 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