Open explorer on a file

前端 未结 5 2073
北海茫月
北海茫月 2020-11-28 03:21

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:\\pa         


        
相关标签:
5条回答
  • 2020-11-28 03:50

    For some reason, on windows 7 it always opens the users Path, for me following worked out:

    import subprocess
    subprocess.call("explorer C:\\temp\\yourpath", shell=True)
    
    0 讨论(0)
  • 2020-11-28 04:00

    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 and this solution may help other people.

    0 讨论(0)
  • 2020-11-28 04:02

    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()

    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])
    
    0 讨论(0)
  • 2020-11-28 04:06

    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).

    import easygui
    file = easygui.fileopenbox()
    
    0 讨论(0)
  • 2020-11-28 04:12

    From Geoff Chappell's The Windows Explorer Command Line

    import subprocess
    subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')
    
    0 讨论(0)
提交回复
热议问题