Python子进程模块等效于在Windows中双击

时间:2010-12-14 02:21:40

标签: python windows subprocess explorer

我想使用subprocess模块打开一个文件,就像在资源管理器中双击该文件一样。我该怎么做?

我尝试了以下一行:

subprocess.call("C:/myfile.csv", shell=True)

引发错误说:

  

该命令的语法是   不正确。
  “C:\”未被识别为   内部或外部命令,   可操作程序或批处理文件。

如何使用subprocess模拟双击?基本上我想在Excel 2007中打开一个CSV文件。

3 个答案:

答案 0 :(得分:7)

os.startfile(r'C:\myfile.csv')

(仅适用于Win32。对于Mac,使用'open filename'运行一个进程;在Linux / freedesktop-in-general上运行'xdg-open filename'。)

答案 1 :(得分:1)

我认为你的部分问题是你使用unix样式斜杠/作为路径分隔符,而不是windows反斜杠。看起来windows正在将/myfile.csv解释为程序C:的参数,这就是您收到该消息的原因。

但是如果你纠正了这个问题,我认为你只是说它C:\myfile.csv不是一个程序。

答案 2 :(得分:0)

我知道这有点晚了,但要在python 2.x(不确定3)中这样做,你应该使用subprocess模块,引用Popen。这是代码:

import subprocess
subprocess.Popen(r'explorer /select, "C:\"')

它基本上打开文件,然后在默认程序中打开它。