Wie springe ich in Python zu einer Datei im Windows Explorer? Ich habe eine Lösung gefunden, um zu Ordnern zu springen:
import subprocess
subprocess.Popen('explorer "C:\path\of\folder"')
aber ich habe keine lösung für dateien.
Über Geoff Chappells Windows Explorer-Befehlszeile
import subprocess
subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')
comma (,)
dazwischen hinzuzufügen/select
undpath
dannMy Documents
wird das geöffnet. dhexplorer /select,"C:\path\of\folder\file"
ist nicht richtigexplorer /select "C:\path\of\folder\file"
Eine schönere und sicherere Lösung (leider nur unter Windows) ist os.startfile () .
Wenn anstelle einer Datei ein Ordner angegeben wird, wird der Explorer geöffnet.
Ich bin mir bewusst, dass ich die Frage nicht vollständig beantworte, da es keine Datei auswählt, aber die Verwendung
subprocess
ist immer eine schlechte Idee und diese Lösung kann anderen Menschen helfen.quelle
startfile
existiert nur unter Windows ( stackoverflow.com/questions/29823028/… ).os.startfile()
akzeptiert keine Argumente ☹ Obwohl es im Falle des Explorers einfach zu sein scheint, den Prozess übersubprocess.run
orPopen
Da
explorer
dies überschrieben werden könnte, wäre es etwas sicherer, direkt auf die ausführbare Datei zu verweisen. (musste nur auch darauf geschult werden)Und wenn Sie schon dabei sind: Verwenden Sie die aktuelle Unterprozess-API von Python 3:
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])
quelle
Aus irgendeinem Grund öffnet es unter Windows 7 immer den Benutzerpfad, für mich hat folgendes ausgearbeitet:
import subprocess subprocess.call("explorer C:\\temp\\yourpath", shell=True)
quelle
subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')
funktioniert, aber wie bekomme ich dieses Fenster über andere Fenster, wenn der Benutzer zu einem anderen Fenster wechselt, nachdem er diese Anweisung irgendwo in seinem Programm ausgeführt hat?shell=True
tho! security.openstack.org/guidelines/…Alternativ können Sie das Datei- Openbox-Modul von EasyGUI verwenden , um den Datei-Explorer zu öffnen, durch den der Benutzer klicken und dann eine Datei auswählen kann (wobei der vollständige Dateipfad zurückgegeben wird).
import easygui file = easygui.fileopenbox()
quelle