I want to run a program on several platforms (including Mac OS), so I try to keep it as platform independent as possible. I use Windows myself, and I have a line os.startfile(file)
. That works for me, but not on other platforms (I read in the documentation, I haven't tested for myself).
Is there an equivalent that works for all platforms?
By the way, the file is a .wav
file, but I want users to be able to use their standard media player, so they can pause/rewind the file. That's why I use os.startfile()
. I might be able to work with libraries that also allow playing/pausing/rewinding media files.
It appears that a cross-platform file opening module does not yet exist, but you can rely on existing infrastructure of the popular systems. This snippet covers Windows, MacOS and Unix-like systems (Linux, FreeBSD, Solaris...):
import os, sys, subprocess
def open_file(filename):
if sys.platform == "win32":
os.startfile(filename)
else:
opener = "open" if sys.platform == "darwin" else "xdg-open"
subprocess.call([opener, filename])