可能这个问题很明显,请原谅。
我想执行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”中的双斜线。我该如何解决?
答案 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)