【问题标题】:os.system commandsos.system 命令
【发布时间】: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


【解决方案1】:
os.system("C:\\FIOCheck\\xutil.exe  -i get phy" +HBEA + ">C:\\FIOCheck\\HBEAResult.txt")

应该是

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)

【讨论】:

  • 这几乎总结了我上面的两个cmets。
  • 似乎是我使用 os 命令时遇到的前两件事
  • 所以我一直在纠结这个,并尝试了这一步。一切似乎都在输出中运行良好,但是由于某种原因我仍然没有通过 HBEA 变量。示例输出: 50012BE00004BDFF C:\FIOCheck\xutil.exe -i get phy 50012BE00004BDFF >C:\FIOCheck\HBEAResult.txt
  • Nate - 它是从另一个创建为 50012BE:00004BDFF 的文件中提取的。我只是提取 : 然后传递这个值。
猜你喜欢
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多