在特定程序执行完后使用Python在Windows控制台中编写文本

2024-10-01 04:51:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个软件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,但一点也不。你知道吗

有什么想法吗?你知道吗


Tags: 函数命令行test程序txtevent软件windows
1条回答
网友
1楼 · 发布于 2024-10-01 04:51:09

我找到的唯一一个涉及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)。在代码的开头,您会看到:

READ (5,100,ERR=1) CFIL1
OPEN (1,FILE=CFIL1)

第一行是代码如何从用户处获取文件名。将该行替换为一个读取命令行参数的行,瞧,您有一个版本的FUNCOR2,它从命令行获取输入文件,因此很容易从Python调用。在Fortran中找到从命令行参数获取文件名的示例应该很容易。我猜只要用一两行代码替换那一行就足够了。我没有足够的兴趣去尝试,并且怀疑它是否值得。这是因为源中的另一行是:

DIMENSION X(1024),V(1024),COR(200),NPA(200)

奇怪的是,如果你的文件有超过1024个观察值,程序就会失败。也许在90年代末写这篇论文的时候,类似的东西是有意义的,但是几乎可以肯定的是,有相当于熊猫的代码能够处理数百万次的观测。有时旧代码应该被允许消亡。你知道吗

相关问题 更多 >