Python“call()”函数不接受来自“abspath()”的文件路径

时间:2014-08-09 06:51:20

标签: python python-3.x cmd window python-3.4

可能这个问题很明显,请原谅。

我想执行shell命令(Windows 8.1,Python 3.4)以使用SVG文件打开IE。 我是这样做的:

# imgpath = 'C:/Users/Vladimir/dot-code\\..\\graph1.svg'
tmp = FS.abspath(imgpath)
# tmp = 'C:\\Users\\Vladimir\\graph1.svg'
subprocess.call(["start", "", tmp])

看起来不错,但我在调用()中遇到异常 - FileNotFoundError:[WinError 2]找不到文件。

我认为邪恶的根源是“tmp”中的双斜线。我该如何解决?

1 个答案:

答案 0 :(得分:1)

你不应该传递空字符串。 (我想,你的意思是分开命令和论点。)删除空白字符串。只需通过start和路径。

除此之外,start不是真正的程序,而是内置于cmd的命令。使用cmd /c

subprocess.call(['cmd', '/c', 'start', tmp])

或传递shell=True关键字参数:

subprocess.call(['start', tmp], shell=True)

BTW,在Windows上,您可以使用os.startfile

import os
os.startfile(tmp)