Ada banyak solusi berbeda, dan hasilnya akan sangat bergantung pada:
- OS yang Anda gunakan: Windows, Cygwin, Linux, MacOS
- versi python yang Anda gunakan: Python2 atau Python3x
Karena saya telah menemukan beberapa hal yang diklaim hanya berfungsi di Windows, tidak, mungkin karena saya kebetulan menggunakan Cygwin yang mengakali cara OS untuk menangani jalur Windows. Hal-hal lain hanya bekerja di OS berbasis * nix murni atau di Python2 atau 3.
Inilah temuan saya:
- Secara umum,
os.system()
adalah metode paling pemaaf.
os.startfile()
adalah yang paling pemaaf. (Khusus Windows && jika Anda beruntung)
subprocess.Popen([...])
tidak direkomendasikan
subprocess.run(winView, shell=True)
cara yang direkomendasikan!
- Mengingat bahwa menggunakan
subprocess
untuk apa pun dapat menimbulkan risiko keamanan .
Coba ini:
import os, subprocess
...
winView = '/cygdrive/c/Windows/explorer.exe %s' % somefile
...
os.system(winView)
subprocess.Popen(['/cygdrive/c/Windows/explorer.exe', 'somefile.png'])
subprocess.run(winView, shell=True)
T: Mengapa Anda ingin menggunakan explorer
di Windows?
A: Karena jika Anda hanya ingin melihat hasil dari beberapa file baru, explorer akan secara otomatis membuka file tersebut dengan program windows default apa pun yang telah Anda setel untuk jenis file tersebut. Jadi tidak perlu menentukan ulang program default yang akan digunakan.