Il existe de nombreuses solutions différentes, et les résultats dépendront fortement de:
- le système d'exploitation que vous utilisez: Windows, Cygwin, Linux, MacOS
- la version de python que vous utilisez: Python2 ou Python3x
Comme j'ai découvert certaines choses qui sont censées fonctionner uniquement sous Windows, ce n'est probablement pas le cas, probablement parce que j'utilise Cygwin, qui déjoue la façon dont le système d'exploitation gère les chemins Windows. D'autres choses ne fonctionnent que dans les systèmes d'exploitation basés sur * nix purs ou en Python2 ou 3.
Voici mes conclusions:
- De manière générale,
os.system()
c'est la méthode la plus indulgente.
os.startfile()
est le moins indulgent. (Windows uniquement && si vous avez de la chance)
subprocess.Popen([...])
pas recommandé
subprocess.run(winView, shell=True)
la manière recommandée!
- Se souvenir que l'utilisation
subprocess
de n'importe quoi peut poser un risque pour la sécurité .
Essayez ceci:
import os, subprocess
...
winView = '/cygdrive/c/Windows/explorer.exe %s' % somefile
...
# chose one of these:
os.system(winView)
subprocess.Popen(['/cygdrive/c/Windows/explorer.exe', 'somefile.png'])
subprocess.run(winView, shell=True)
Q: Pourquoi voudriez-vous l'utiliser explorer
sous Windows?
R: Parce que si vous voulez simplement regarder les résultats d'un nouveau fichier, l'explorateur ouvrira automatiquement le fichier avec le programme Windows par défaut que vous avez défini pour ce type de fichier. Donc pas besoin de re-spécifier le programme par défaut à utiliser.