在文件上打开资源管理器
在Python中,如何跳转到Windows资源管理器中的文件? 我找到了跳转到文件夹的解决方案:
import subprocess
subprocess.Popen('explorer "C:\path\of\folder"')
但我没有文件的解决方案。
In Python, how do I jump to a file in the Windows Explorer? I found a solution for jumping to folders:
import subprocess
subprocess.Popen('explorer "C:\path\of\folder"')
but I have no solution for files.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
来自Geoff Chappell 的Windows 资源管理器命令行
From Geoff Chappell's The Windows Explorer Command Line
一个更好、更安全的解决方案(不幸的是仅在 Windows 中)是 os.startfile() 。
当给它一个文件夹而不是一个文件时,它将打开资源管理器。
我知道我没有完全回答这个问题,因为它没有选择文件,但使用
subprocess
总是一个坏主意(出于安全原因),这个解决方案可能会帮助其他人。A nicer and safer solution (only in Windows unfortunately) is os.startfile().
When it's given a folder instead of a file, it will open Explorer.
Im aware that i do not completely answer the question since its not selecting a file, but using
subprocess
is always kind of a bad idea (for security reasons) and this solution may help other people.由于
explorer
可以被覆盖,因此直接指向可执行文件会更安全一些。 (只需受过教育这也是)当你这样做时:使用Python 3s当前的子进程API:
run()
As
explorer
could be overridden it would be a little safer to point to the executable directly. (just had to be schooled on this too)And while you're at it: use Python 3s current subprocess API:
run()
由于某种原因,在 Windows 7 上它总是打开用户路径,对我来说以下是解决方法:
For some reason, on windows 7 it always opens the users Path, for me following worked out:
或者,您可以使用 EasyGUI 的 fileopenbox 模块打开文件资源管理器供用户点击,然后选择一个文件(返回完整的文件路径)。
Alternatively, you could use the fileopenbox module of EasyGUI to open the file explorer for the user to click through and then select a file (returning the full filepath).
对于任何想知道如何使用变量代替直接文件路径的人。 下面的代码将打开资源管理器并突出显示指定的文件。
下面的代码将仅在资源管理器中打开指定的文件夹,而不突出显示任何特定文件。
我只在 Windows 上测试过
For anyone wondering how to use a variable in place of a direct file path. The code below will open explorer and highlight the file specified.
The code below will just open the specified folder in explorer without highlighting any specific file.
Ive only tested on windows
使用此命令,您可以转到文件资源管理器中的路径
using this cmd you can go to the path in the file explorer
在资源管理器中打开文件夹的代码:
Code To Open Folder In Explorer:
我发现explorer /open命令会列出目录中的文件。
当我使用 /select 命令(如上所示)时,资源管理器打开父目录并突出显示我的目录。
I find that the explorer /open command will list the files in the directory.
When I used the /select command (as shown above), explorer opened the parent directory and had my directory highlighted.
示例 1. 如果我在同一目录中有一个文件 no.txt
示例 2. 如果我想打开其他目录中的文件
注意:我在 Windows 上运行此文件,这就是我使用记事本的原因,您可以根据您的操作系统进行替换。
Example 1. If I have a file no.txt in same directory
Example 2. If I want to open file in some other directory
Note: I am running this on windows thats why I am using notepad, you can replace according to your os.
这并不完全是问题的答案,但它对我有帮助,所以我认为它也可能对其他人有帮助。
如果您正在使用 wxPython/wxWidgets,您可以尝试 <代码>wx.LaunchDefaultApplication和
wx.LaunchDefaultBrowser
方法。 我不确定它们在 Windows 上的行为如何,但在我的 Linux 设置上,如果我提供指向document
或url< 目录的本地路径,它们都会打开我的默认文件管理器/code> 参数,分别。
This is not entirely an answer to the question, but it helped me so I thought it might help others too.
If you use are using wxPython/wxWidgets, you can try the
wx.LaunchDefaultApplication
andwx.LaunchDefaultBrowser
methods. I'm not sure how they behave on Windows, but on my Linux setup they both open my default file manager if I provide a local path that points to a directory as thedocument
orurl
parameter, respectively.