Python使用os.system

时间:2015-12-17 01:43:19

标签: python python-3.x

我有以下代码:

def display_keyboard(*_):
    os.system(r'start " " C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe')

问题是当这段代码运行时,我收到以下错误:

The system cannot find the file C:\Program.

我遇到了一个问题空间的问题,以便搜索整个文件

C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe

4 个答案:

答案 0 :(得分:2)

使用subprocess.Popen()subprocess.run()几乎总是比os.system()更好的选择。

import subprocess

def display_keyboard(*args):
    return subprocess.Popen(r'C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe')

一些原因包括:

  • 无需担心逃避争论;
  • 对子进程的更多控制,例如对stdout,stderr和stdin流的控制;
  • wait()terminate()方法等

答案 1 :(得分:0)

你应该改为使用

os.startfile("C:\\Program Files\\Common Files\\Microsoft Shared\\ink\\TabTip.exe")

我认为

答案 2 :(得分:0)

当从命令行运行命令时,你必须要转义空格字符或用引号括起它们(我不记得你是否必须在windows中使用双引号,它已经有一段时间了)。这是因为空格被视为参数之间的分隔符。试试

os.system(r'start " " "C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe"')

答案 3 :(得分:0)

尝试引用路径:

os.system('"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe"')