也许这个问题很明显,所以请原谅。
我想执行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])
看起来不错,但我在 call() 内遇到异常 - FileNotFoundError: [WinError 2] File not found.
我认为邪恶的根源是“tmp”中的双斜杠。我该如何修复它?
最佳答案
您不应传递空字符串。 (我猜,你的意思是将命令和参数分开。)。删除空白字符串。只需传递 start
和路径即可。
此外,start
不是一个真正的程序,而是 cmd
的内置命令。使用cmd/c
:
subprocess.call(['cmd', '/c', 'start', tmp])
或传递shell=True
关键字参数:
subprocess.call(['start', tmp], shell=True)
顺便说一句,在 Windows 上,您可以使用 os.startfile
:
import os
os.startfile(tmp)
关于Python "call()"函数不接受从 "abspath()"到文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25216027/