【发布时间】:2012-07-16 13:11:45
【问题描述】:
由于旧的 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 variable
C:\FIOCheck\xutil.exe -i get phy 50012BE00004BDFF>C:\FIOCheck\HBEAResult.txt #the cmd var
但是,这仍然没有传递价值。 HBEA 变量是否太长?
已解决
这个程序对最佳答案进行了一些编辑。命令正确传递,但是我格式化它的方式不正确。新格式如下所示:
cmd = "C:\\FIOCheck\\xutil.exe -i " + HBEA + " get ver" + ">C:\\FIOCheck\\HBEAResult.txt"
os.system(cmd)
感谢您的帮助!
【问题讨论】:
-
您想将
'phy'与HBEA的内容之间没有任何空格连接吗?当我为HBEA设置一个值时,它会与您的字符串连接,因此不清楚您在哪里丢失了该变量的值。您可以在构建此命令之前立即将其打印出来吗? -
我希望能够成功地将 HBEA 传递到命令行。目前该命令运行良好,但缺少 HBEA 变量。
-
我会先单独打印
HBEA的值,然后我会单独构建命令字符串(cmd)并打印出来验证,然后调用os.system(cmd) -
嗨 Levon,我试过了,结果如下: 50012BE00004BDFF C:\FIOCheck\xutil.exe -i get phy 50012BE00004BDFF >C:\FIOCheck\HBEAResult.txt 这是正确的,但是该数字仍未传递到命令行。它仍然不见了。
-
你现在拥有代码的方式,你会得到
phy50012BE00004BDFF.. 不是phy 50012BE00004BDFF所以也许你已经改变了一些东西。此外,只需将'\n'附加到您的字符串即可。它不应该有所作为,但还是继续尝试吧。
标签: python python-2.7 os.system