我有一个软件FUNCOR2.exe
,用于计算给定数据文件的自相关函数,即test.txt
。你知道吗
首先,我从Windows命令行执行FUNCOR2.exe
,然后程序控制并请求输入数据文件。你知道吗
我想在Python中实现自动化,这样我就可以使用working:
os.system("FUNCOR2")
但是我无法在程序中输入文件名。你知道吗
到目前为止我试过:
PressKey(0x54) # T
PressKey(0x45) # E
PressKey(0x53) # S
PressKey(0x54) # T
PressKey(110) # .
PressKey(0x54) # T
PressKey(0x58) # X
PressKey(0x54) # T
我从Generate keyboard events取的,但它不起作用,而且:
win32api.keybd_event(0x54, 0)
win32api.keybd_event(0x45, 0)
win32api.keybd_event(0x53, 0)
win32api.keybd_event(0x54, 0)
win32api.keybd_event(110, 0)
win32api.keybd_event(0x54, 0)
win32api.keybd_event(0x58, 0)
win32api.keybd_event(0x54, 0)
它也不起作用。你知道吗
此程序不接受参数,因此无法使用:
FUNCOR2.exe test.txt
我在这里发现了类似的东西:Writing in the cmd after executing an app.exe from java,但一点也不。你知道吗
有什么想法吗?你知道吗
我找到的唯一一个涉及
FUNCOR2
的东西(除了你的问题)是论文“A library of computer programs for assisting teaching and research in cyclostratigraphic analysis”。因为这是《计算机与地球科学》杂志上的文章,而且你在地理信息系统领域,所以我认为这是正确的。你知道吗有几种可能性(除了发送击键之外,充其量也很危险):
1)这篇论文清楚地给出了所使用的公式(快速浏览一下实际的Fortran代码downloadable from the Journal's website就可以确认没有其他操作)表明,这在Python中很容易实现,无论是直接的Python还是使用pandas(它有计算自相关的函数)。你知道吗
2)修改Fortran源代码并用开源Fortran编译器重新编译(我不是Fortran专家,但这似乎是Fortran 77)。在代码的开头,您会看到:
第一行是代码如何从用户处获取文件名。将该行替换为一个读取命令行参数的行,瞧,您有一个版本的
FUNCOR2
,它从命令行获取输入文件,因此很容易从Python调用。在Fortran中找到从命令行参数获取文件名的示例应该很容易。我猜只要用一两行代码替换那一行就足够了。我没有足够的兴趣去尝试,并且怀疑它是否值得。这是因为源中的另一行是:奇怪的是,如果你的文件有超过1024个观察值,程序就会失败。也许在90年代末写这篇论文的时候,类似的东西是有意义的,但是几乎可以肯定的是,有相当于熊猫的代码能够处理数百万次的观测。有时旧代码应该被允许消亡。你知道吗
相关问题 更多 >
编程相关推荐