Abrir archivos y carpetas en linux y windows

Hola que tal.

Necesito saber cómo abrir de forma externa un archivo y una carpeta. Entiendo que para abrir un archivo en windows se puede usar la instrucción os.startfile(), el punto es que busco como hacerlo válido para Windows y linux. Según he visto esto puede ahcerse con el módulo subprocess, sin embargo solo encuentro referencias a “call”, pero entiendo que desde python 3.4 se usa “run”. Además no logro entender cómo hacerlo en linux considerando la bariedad de gestores de archivos que el usuario puede estar utilizando. En resumen, ¿cómo puedo implementar subprocess para abrir archivos y carpetas directamente en el sistema?.

Un saludo.