使用特定程序打开文件不会产生输出

时间:2019-09-03 08:58:48

标签: python powershell cmd

首先,我是编码的新手,我一直在寻找类似的问题,并且我知道一些可以在Python和CMD中使用可执行文件打开文件的命令。我遇到的问题是,当我尝试使用这些命令时,该程序运行时没有任何错误,但没有提供应提供的输出文件。另一方面,当我双击设置为*.exe打开的文件时,它将起作用并产生输出。 我尝试了CMD命令:

start "path of .exe" "filepath"

也只是:

"path of .exe" "filepath"

然后我在python中尝试了os和subprocess模块​​:

subprocess.Popen(...)
os.system(...)
subprocess.run(...)

以及我在互联网上找到的许多其他解决方案。关键是所有这些解决方案都不会给出错误,并且应该可以工作,但它们不会为我生成所需的文件。我在具有不同.exe的另一个文件上使用了相同的命令,它们可以工作。 这是我尝试使整个过程自动化的步骤,无法正常工作。如果有人愿意看一下这些文件,则可以从以下链接下载它们:

https://gofile.io/?c=5TJtS9

文件如下:
1.使用rdam.grd运行hist_dam2d.exe文件会生成hist.plotps文件
2.然后将hist.plotpsplotps.exe一起运行会生成所需的图

这对我来说应该是一件容易的事。

更多信息...这是一个随机有限元软件的一部分,由作者自由分发。您可以从以下链接中查看整个文档并下载程序的所有部分: http://random.engmath.dal.ca/rfem/
引起问题的零件仅用于提取和显示结果。
这是一个旧软件,因此可能存在一些问题。

1 个答案:

答案 0 :(得分:0)

由于您未提供确切的代码段,因此我不知道您对Python代码做了什么。我也没有发表评论的声誉。因此,我将仅提供您列出的3种方法(CMD,Powershell,Python)的代码示例。这三种方法都可以在我的机器上使用。
1)CMD

start "" "plotps.exe" hist.plotps

在start关键字后的双引号用于指定可选标题。在您的CMD示例中出问题的是Windows认为标题为“ plotps.exe”。您无需指定标题,但需要写引号。有关此关键字的更多信息,请参见:https://ss64.com/nt/start.html
另请注意,启动是异步的
同步的方法是:

plotps.exe hist.plotps

2)Powershell

Start-Process -FilePath "plotps.exe" -ArgumentList "hist.plotps"

如果您可以同时使用两者,我会强烈建议使用Powershell over CMD。
此方法是同步的。
有关启动过程的更多信息:https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/Start-Process?view=powershell-5.0

3)Python
我不是python专家,但这对我有用:

import subprocess
subprocess.call(['plotps.exe', 'hist.plotps'])