在文件上打开资源管理器
在Python中,我该如何直接打开Windows资源管理器中的一个文件呢?我找到了一种方法可以跳转到文件夹:
import subprocess
subprocess.Popen('explorer "C:\path\of\folder"')
但是我还没有找到针对文件的解决办法。
11 个回答
16
因为explorer
可以被覆盖,所以直接指向可执行文件会更安全一些。(我刚刚也被人教过这个)
顺便提一下:使用Python 3现在的子进程API:run()
import os
import subprocess
FILEBROWSER_PATH = os.path.join(os.getenv('WINDIR'), 'explorer.exe')
def explore(path):
# explorer would choke on forward slashes
path = os.path.normpath(path)
if os.path.isdir(path):
subprocess.run([FILEBROWSER_PATH, path])
elif os.path.isfile(path):
subprocess.run([FILEBROWSER_PATH, '/select,', path])
39
一个更好更安全的解决方案(可惜只在Windows上有效)是 os.startfile()。
当你给它一个文件夹而不是文件时,它会打开资源管理器。
我知道这样并没有完全回答问题,因为它并没有选择文件,但使用 subprocess
通常不是个好主意(出于安全考虑),这个解决方案可能会对其他人有所帮助。
124
来自Geoff Chappell的《Windows资源管理器命令行》
import subprocess
subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')