Python subprocess模块在Windows中双击的等效方法
我想用 subprocess
模块打开一个文件,就像在资源管理器中双击文件一样。请问我该怎么做?
我试过以下这一行:
subprocess.call("C:/myfile.csv", shell=True)
但是出现了一个错误,提示:
命令的语法不正确。
'C:\' 不是内部或外部命令,也不是可操作的程序或批处理文件。
我该如何用 subprocess
模拟双击呢?基本上,我想在 Excel 2007 中打开一个 CSV 文件。
3 个回答
0
我知道这个回答有点晚了,不过如果你想在 Python 2.x 中做到这一点(不太确定在 3.x 中是否一样),你应该使用 subprocess
模块,具体是用到 Popen
。下面是代码:
import subprocess
subprocess.Popen(r'explorer /select, "C:\"')
这段代码的基本意思是打开一个文件,然后用默认程序来打开它。
1
我觉得你遇到的问题部分是因为你用了Unix风格的斜杠 / 来分隔路径,而不是Windows的反斜杠 \。看起来Windows把 /myfile.csv
解释成了程序 C:
的一个参数,所以你才会看到那个提示信息。
不过如果你把这个问题修正过来,我想你会看到的提示是 C:\myfile.csv
不是一个程序。
10
os.startfile(r'C:\myfile.csv')
(这个只适用于Windows系统。如果你是在Mac上,可以用 'open filename'
来打开一个文件;在Linux或者其他类似的系统上,可以用 'xdg-open filename'
来打开文件。)