Python "call()"函数不接受从 "abspath()"到文件的路径

标签 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])

看起来不错,但我在 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/

相关文章:

python - 私有(private)方法只能从 python 中它自己的类访问是什么意思?

python - 如何从csv文件中读取某一列?

java - 使用静默安装将 Java 安装到带空格的目录中

for-loop - CMD For 循环不保存设置/值

python - 使用多个链接之间的特定链接时,脚本会引发错误

python - 更改数据帧的值(列表中索引除外)

python-3.x - 匹配条件时合并多个相同长度的列表

windows - 批处理文件 - FOR 循环

python - 使用 Numpy 计算相关系数

python - 没有名为 'Queue' 的模块