在Python中,如何跳到Windows资源管理器中的文件?我找到了跳到文件夹的解决方案:
import subprocess
subprocess.Popen('explorer "C:\path\of\folder"')
但是我没有文件的解决方案。
在Python中,如何跳到Windows资源管理器中的文件?我找到了跳到文件夹的解决方案:
import subprocess
subprocess.Popen('explorer "C:\path\of\folder"')
但是我没有文件的解决方案。
Answers:
来自Geoff Chappell的Windows资源管理器命令行
import subprocess
subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')
comma (,)
之间/select
和path
再My Documents
打开。即explorer /select,"C:\path\of\folder\file"
是正确的不是这个explorer /select "C:\path\of\folder\file"
os.startfile()是一个更好,更安全的解决方案(不幸的是,仅在Windows中)。
当给它一个文件夹而不是文件时,它将打开资源管理器。
我知道我没有完全回答问题,因为它没有选择文件,但是使用subprocess
始终是一个坏主意,这种解决方案可能会帮助其他人。
startfile
仅存在于Windows(stackoverflow.com/questions/29823028/…)。
os.startfile()
不接受参数☹尽管使用Explorer似乎很容易通过subprocess.run
或Popen
由于explorer
可以覆盖这将是一个小更安全点直接可执行文件。(也必须对此进行教育)
而当您使用它时:使用Python 3s当前的子流程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])
出于某种原因,在Windows 7上它总是打开用户路径,对我来说,下面是解决方法:
import subprocess
subprocess.call("explorer C:\\temp\\yourpath", shell=True)
subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')
可以,但是如果用户在程序中某处执行了该语句后又转到其他窗口,该如何在其他窗口之上获得该窗口?
shell=True
tho!security.openstack.org/guidelines/…–
对于任何想知道如何使用变量代替直接文件路径的人。下面的代码将打开资源管理器并突出显示指定的文件。
import subprocess
subprocess.Popen(f'explorer /select,{variableHere}')
下面的代码将仅在资源管理器中打开指定的文件夹,而不会突出显示任何特定文件。
import subprocess
subprocess.Popen(f'explorer "{variableHere}"')
Ive仅在Windows上进行过测试