Bir sürü farklı çözüm var ve sonuçlar büyük ölçüde şunlara bağlı olacaktır:
- kullandığınız işletim sistemi: Windows, Cygwin, Linux, MacOS
- kullandığınız python sürümü: Python2 veya Python3x
Sadece Windows'ta çalıştığı iddia edilen bazı şeyleri keşfettiğim gibi, muhtemelen Windows yollarıyla başa çıkmak için işletim sisteminin yolunu aşan Cygwin'i kullandığım için değil. Diğer şeyler yalnızca saf * nix tabanlı işletim sistemlerinde veya Python2 veya 3'te çalışır.
İşte bulgularım:
- Genel olarak konuşmak gerekirse,
os.system()
en bağışlayıcı yöntemdir.
os.startfile()
en az bağışlayıcıdır. (Yalnızca Windows && şanslıysanız)
subprocess.Popen([...])
değil tavsiye
subprocess.run(winView, shell=True)
önerilen yol!
subprocess
Herhangi bir şey için kullanmanın bir güvenlik riski oluşturabileceğini hatırlamak .
Bunları dene:
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)
S: Neden explorer
Windows'ta kullanmak istersiniz ?
C: Çünkü sadece yeni bir dosyanın sonuçlarına bakmak istiyorsanız, explorer dosyayı otomatik olarak o dosya türü için ayarladığınız varsayılan Windows programıyla açacaktır. Bu nedenle, kullanılacak varsayılan programı yeniden belirlemenize gerek yoktur.