Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于在Windows中双击的Python子流程模块等效项_Python_Windows_Subprocess_Explorer - Fatal编程技术网

用于在Windows中双击的Python子流程模块等效项

用于在Windows中双击的Python子流程模块等效项,python,windows,subprocess,explorer,Python,Windows,Subprocess,Explorer,我想使用子流程模块打开一个文件,就像在资源管理器中双击该文件一样。我该怎么做 我试过下面这句话: subprocess.call("C:/myfile.csv", shell=True) 这会抛出一个错误,说: 命令的语法是 不正确。 “C:\”未被识别为 内部或外部命令, 可操作的程序或批处理文件 如何使用子流程模拟双击?基本上我想在Excel2007中打开一个CSV文件 os.startfile(r'C:\myfile.csv') (仅限Win32。对于Mac,使用'open filen

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

我试过下面这句话:

subprocess.call("C:/myfile.csv", shell=True)
这会抛出一个错误,说:

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

如何使用
子流程模拟双击?基本上我想在Excel2007中打开一个CSV文件

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

(仅限Win32。对于Mac,使用
'open filename'
运行进程;在Linux/freedesktop上,通常使用
'xdg-open filename'

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


然而,如果你纠正了这一点,我想你会明白,
C:\myfile.csv
不是一个程序。

我知道这有点晚了,但是在Python2.x中(不确定是否是3),你应该使用
子进程
模块,引用
Popen
。代码如下:

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

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

我认为
subprocess.call(r'C:\myfile.csv',shell=True)
应该这样做(不确定,而且
os.startfile
更干净)。@Chris:我实际上使用了
shell=True
,忘了在问题中包含它。使用
shell=True
会产生我上面提到的错误。我认为您忽略了这样一个事实,即Chris在路径中使用了带反斜杠的原始字符串,而您在路径中没有使用该字符串(差异可能很大)。+1
subprocess.call
尝试将某些内容作为可执行文件运行。您的CSV文件不是可执行文件;这是一个人的数据。每个平台都有自己的实用程序应用程序,用于“找出这是什么类型的文件并将其提供给适当的应用程序”,这正是您真正想要做的。