os.system命令

8 浏览
0 Comments

os.system命令

我正在开发一个程序,由于旧版Python的限制,需要使用os.system。目前我在一个小地方卡住了。

os.system("C:\\FIOCheck\\xutil.exe  -i get phy" +HBEA + ">C:\\FIOCheck\\HBEAResult.txt")

这是我正在努力解决的一段代码。它将访问一个外部程序,该程序具有一些参数。HBEA是我尝试传递的变量(在程序中之前接收到)。然后,程序会将.exe创建的任何内容传输到外部文件中。此时,变量HBEA没有传递到命令行,因此.exe永远不会运行,导致.txt文件为空。由于文件为空,我无法从中获取数据,因此无法完成程序。

有任何想法吗?

编辑:

所以根据一些建议,我尝试了以下代码:

cmd = "C:\\FIOCheck\\xutil.exe  -i get phy " +HBEA + ">C:\\FIOCheck\\HBEAResult.txt"
print cmd
os.system(cmd)

生成了以下输出:

50012BE00004BDFF  #HBEA变量
C:\FIOCheck\xutil.exe  -i get phy 50012BE00004BDFF>C:\FIOCheck\HBEAResult.txt # cmd变量

然而,这仍然没有传递值。HBEA变量太长了吗?

解决

这个程序经过一些最佳答案的修改后成功了。命令正确传递,但我格式化的方式不正确。新的格式如下:

cmd = "C:\\FIOCheck\\xutil.exe -i " + HBEA + " get ver" + ">C:\\FIOCheck\\HBEAResult.txt"
os.system(cmd)

感谢帮助!

0
0 Comments

问题:为什么在使用os.system命令时会出现问题,以及如何解决?

原因:代码中使用了不正确的命令格式,导致os.system命令无法正确执行。具体来说,命令中的空格缺失导致参数无法正确传递,同时输出重定向符号“>”也使用了错误的编码。

解决方法:可以通过两种方式来解决这个问题。首先,可以直接修改命令,将缺失的空格添加进去,同时将输出重定向符号的编码修正。其次,可以先构建命令字符串,然后再通过os.system命令来执行。以下是两种解决方法的示例代码:

方法一:

os.system("C:\\FIOCheck\\xutil.exe -i get phy " + HBEA + "> C:\\FIOCheck\\HBEAResult.txt")

方法二:

cmd = "C:\\FIOCheck\\xutil.exe -i get phy " + HBEA + "> C:\\FIOCheck\\HBEAResult.txt"
print cmd
os.system(cmd)

这两种方法可以有效地解决os.system命令执行时出现的问题。根据实际需求选择其中一种方法即可。

0